【发布时间】:2019-11-05 14:05:03
【问题描述】:
我有一个 csv 文件,其中包含一排国家/地区值和一排奥运奖牌。我想数一下哪个国家获得了多少奖牌。
我用 pandas 尝试过,但它给了我一个错误消息,它找不到“国家”行,尽管该行确实存在并且它被命名为国家 CSV 文件:
from collections import Counter
import pandas as pd
import csv
with open('olympics.csv', 'r', encoding='utf-8', newline='') as csv_file:
df = pd.read_csv("olympics.csv",
index_col=["NOC","Medal"])
#usecols=["NOC","Medal"])
#df.sort_index()
#grouped = df.groupby(['NOC', 'Medal'])
grouped = df.groupby(['NOC','Medal'])['NOC'].count()
print(grouped)
输出应该是这样的:
USA 2366
UK 2189
Denmark 1455
....
【问题讨论】:
-
我也可以不使用 pandas 来解决问题,我已经用 dict reader 试过了,但也没用过
-
“国家”还是“NOC”?
-
所以你的 csv 看起来像这样 -> (row 1 -> usa, uk, denmark) | (第 2 行 -> 2366、2189、1455)?
-
对不起,它被命名为 NOC,我只是为了理解写了国家
-
一排是国家的名字,叫做NOC,一排是奖牌的名字,叫做奖牌,里面只有金银铜牌,
标签: python pandas csv sorting dataframe