【发布时间】:2021-08-17 06:04:08
【问题描述】:
我试图仅当日期在 Date 列中连续时才对列 Amount 应用累积和:
当前输入:
df = pd.DataFrame({'Country': {0: 'USA',1: 'Canada', 2: 'China',3: 'Egypt',4: 'Poland',5: 'UK',6: 'Jordan'},
'Date': {0: '2021-01-01',1: '2021-01-02',2: '2021-01-03',3: '2021-01-04',4: '2021-01-06',5: '2021-01-07',6: '2021-01-08'},
'Amount': {0: 10, 1: 15, 2: 10, 3: 20, 4: 25, 5: 30, 6: 10}})
Country Date Amount
0 USA 2021-01-01 10
1 Canada 2021-01-02 15
2 China 2021-01-03 10
3 Egypt 2021-01-04 20
4 Poland 2021-01-06 25
5 UK 2021-01-07 30
6 Jordan 2021-01-08 10
预期输出:
在第 4 行中,由于Date 列中缺少 2021-01-05,累计和被重置。
Country Date Amount Cumilative
0 USA 2021-01-01 10 10
1 Canada 2021-01-02 15 25
2 China 2021-01-03 10 35
3 Egypt 2021-01-04 20 55
4 Poland 2021-01-06 25 25<
5 UK 2021-01-07 30 55
6 Jordan 2021-01-08 10 65
我尝试过的,这是不正确的:
我不确定如何在我的脚本中包含检查以检查 Date 列是否连续以重置 Amount 列中的累积和。
df['Date'] = pd.to_datetime(df['Date'])
df['Cumilative'] = df['Amount'].cumsum()
Country Date Amount Cumilative
0 USA 2021-01-01 10 10
1 Canada 2021-01-02 15 25
2 China 2021-01-03 10 35
3 Egypt 2021-01-04 20 55
4 Poland 2021-01-06 25 80
5 UK 2021-01-07 30 110
6 Jordan 2021-01-08 10 120
如果有人可以在这里帮助我,将不胜感激。
【问题讨论】:
标签: python pandas dataframe pandas-groupby cumsum