我有一个相当简单的问题,似乎找不到任何解决方案。我在网上看过很多类似的问题,但他们的解决方案对我来说不起作用。
我有一个熊猫数据集,格式如下
CountryCode ConfirmedCases ConfirmedDeaths date
335 ABW 4872.0 45.0 2020-12-01
336 ABW 4902.0 45.0 2020-12-02
337 ABW 4923.0 45.0 2020-12-03
338 ABW 4942.0 45.0 2020-12-04
339 ABW 4957.0 45.0 2020-12-05
ConfirmedCases和ConfirmedDeaths都是按CountryCode计算的累计总数,但我需要按CountryCode的每日病例和每日死亡。这需要我计算数据集中每个国家在t和t-1时间的确诊病例之间的差异,即同一国家今天和前一天的病例数之间的差异。理想情况下,我希望有一个解决方案,允许我在数据集中注册按国家划分的每日病例数和每日死亡人数作为两个新变量。因此,我想要一些应该看起来像以下的东西:
CountryCode ConfirmedCases ConfirmedDeaths date DailyCases Daily Deaths
335 ABW 4872.0 45.0 2020-12-01 15 0
336 ABW 4902.0 45.0 2020-12-02 30 0
337 ABW 4923.0 45.0 2020-12-03 21 0
338 ABW 4942.0 45.0 2020-12-04 19 0
339 ABW 4957.0 45.0 2020-12-05 15 0
提前感谢您的帮助!
Quang Hoang的解决方案是正确的,只是您应该将NaN
值替换为每个国家的初始值:
df['DailyCases'] = df.groupby('CountryCode')['ConfirmedCases'].diff()
df['DailyCases'] = df['DailyCases'].fillna(df['ConfirmedCases'])