用 python 抓取 CSV 数据

我只对三列感兴趣,“大陆”、“日期”和一个数据列。我想添加来自相同大陆和日期的所有数据,例如按日期显示每个大陆的数据。

这是我当前的代码(到目前为止,我已经创建了字典和递归来用每个日期输入数据填充它们):

df=pd.read_csv(r'C:\Users\julio\Desktop\proyect\owid-covid-data.csv')

print(df.iloc[0,1])# continent

print(df.iloc[0,3])# date

print(df.iloc[0,5])# data (new_cases)

Africa=dict()

Europe=dict()

Asia=dict()

NorthAmerica=dict()

SouthAmerica=dict()

Oceania=dict()

for index, row in df.iterrows():

    if row['continent']=='Asia':

        Asia.update({df.iloc[index,3],df.iloc[index,5]})

    if row['continent']=='Africa':

        Africa.update({df.iloc[index,3],df.iloc[index,5]})

    if row['continent']=='Europe':

        Europe.update({df.iloc[index,3],df.iloc[index,5]})

    if row['continent']=='North America':

        NorthAmerica.update({df.iloc[index,3],df.iloc[index,5]})

    if row['continent']=='South America':

        SouthAmerica.update({df.iloc[index,3],df.iloc[index,5]})

    if row['continent']=='Oceania':

        Oceania.update({df.iloc[index,3],df.iloc[index,5]})

我收到一条错误消息,指出字典更新所需的项目不止 2 个。


怎么了?


青春有我
浏览 140回答 3
3回答

慕婉清6462132

首先,添加每个大陆和日期的数据。df.groupby(['continent', 'date'])['data'].sum().reset_index()然后,按大陆和日期升序对数据进行排序df.sort_values(['continent', 'date'], ascending=True)

叮当猫咪

具体到错误消息,如果我理解你正在尝试做正确的事情,那就是Asia.update({df.iloc[index,3]:df.iloc[index,5]})其他也类似。

繁花如伊

我不确定我是否理解创建字典和 iterrows 循环背后的逻辑。但是这里有一种方法可以下载原始帖子中的三列。import pandas as pdfilename = ('https://raw.githubusercontent.com'            '/owid/covid-19-data/master/public/data/owid-covid-data.csv')fields = ['continent', 'date', 'new_cases']df_raw = pd.read_csv(filename, usecols=fields, parse_dates=['date'])现在,重新整形以将日期转换为行标签,将大洲转换为列标签:df = df_raw.pivot_table(index='date',                        columns='continent',                        values='new_cases',                        aggfunc='sum',                        fill_value=0,                       )print(df.tail())continent   Africa   Asia  Europe  North America  Oceania  South Americadate                                                                    2020-08-11    8828  81397   23272          60213      331          462892020-08-12    7895  88186   19821          59165      402          855422020-08-13    9529  94335   26994          67675      493          897872020-08-14   10515  92004   25367          64727      285          933642020-08-15   12689  95916   18686          76850      434          84099
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python