我的目标是在下面转换-当前数据输出
通过添加一个名为Cases的新列,该列是非累积的,无法进一步分析。
我已经尝试过此解决方案,但是我不确定我的错误-
Data["Cases"] = Data.groupby(level=0).diff().fillna(Data).reset_index()
请告知
答案 0 :(得分:1)
一种简单的方法是获取累积列中的值的滞后,然后计算累积和滞后之间的差。
import pandas as pd
date = ['2020-03-01','2020-03-02','2020-03-03','2020-03-04','2020-03-05']
cases = [1, 2, 4, 7, 10]
data = list(zip(date, cases))
df = pd.DataFrame(data, columns=['Date','Cases'])
df['Lag'] = df.Cases.shift(1).fillna(0)
df['Daily Cases'] = df.Cases - df.Lag
print(df)
Date Cases Lag Daily Cases
0 2020-03-01 1 0.0 1.0
1 2020-03-02 2 1.0 1.0
2 2020-03-03 4 2.0 2.0
3 2020-03-04 7 4.0 3.0
4 2020-03-05 10 7.0 3.0
请记住,这里的顺序很重要。因此,请按升序对累积列进行排序。
如果有帮助,别忘了将此标记为已接受答案