首页 > 解决方案 > 如何添加按类别“区分”累积变量的列?

问题描述

我第一次发帖,所以请多多包涵。我有一个如下所示的 COVID 数据集:

date        | county | confirmed
2021-05-01    Bexar     1200
2021-05-01    Travis    1500
2021-05-01    Harris    1300
2021-05-02    Bexar     1250
2021-05-02    Travis    1550
2021-05-02    Harris    1350 

“已确认”列是累积的。

实际上,它是一个更大的数据集(几个日期和 200 多个县)。我想在数据集中添加一列,该列每天按县提供差异(新病例)。所以它最终像:

date        | county | confirmed  | new_cases 
2021-05-01    Bexar     1200         N/A
2021-05-01    Travis    1500         N/A
2021-05-01    Harris    1300         N/A
2021-05-02    Bexar     1250         50
2021-05-02    Travis    1530         30
2021-05-02    Harris    1340         40 

我已经尝试弄清楚如何在县上循环 df.diff() 命令,并将结果每次都添加到 df 中。但是我对 Python 太陌生了,以至于我无法弄清楚。

标签: pythonpandas

解决方案


假设您正在使用pandas

df = df.sort_values(by=['date'])

df['diff'] = df.groupby(['county'])['confirmed'].diff().fillna(0)

推荐阅读