3 回答
TA贡献1804条经验 获得超2个赞
首先,添加每个大陆和日期的数据。
df.groupby(['continent', 'date'])['data'].sum().reset_index()
然后,按大陆和日期升序对数据进行排序
df.sort_values(['continent', 'date'], ascending=True)
TA贡献1776条经验 获得超12个赞
具体到错误消息,如果我理解你正在尝试做正确的事情,那就是
Asia.update({df.iloc[index,3]:df.iloc[index,5]})
其他也类似。
TA贡献2012条经验 获得超12个赞
我不确定我是否理解创建字典和 iterrows 循环背后的逻辑。但是这里有一种方法可以下载原始帖子中的三列。
import pandas as pd
filename = ('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 America
date
2020-08-11 8828 81397 23272 60213 331 46289
2020-08-12 7895 88186 19821 59165 402 85542
2020-08-13 9529 94335 26994 67675 493 89787
2020-08-14 10515 92004 25367 64727 285 93364
2020-08-15 12689 95916 18686 76850 434 84099
添加回答
举报