【发布时间】:2020-02-11 18:48:30
【问题描述】:
我有一个如下的数据框
id Supply days days_180
1 30 0 180
1 100 183 363
1 80 250 430
2 5 0 180
2 5 10 190
3 5 0 180
3 30 100 280
3 30 150 330
3 30 200 380
3 30 280 460
3 50 310 490
我想对每行的“天数”和“天数+180”之间的天数求和。这需要在 groupby('id') 之后为每个组完成。
预期输出如下
id Supply days days_180 use
1 30 0 180 30
1 100 183 363 180
1 80 250 430 80
2 5 0 180 10
2 5 10 190 10
3 5 0 180 65
3 30 100 280 120
3 30 150 330 140
3 30 200 380 110
3 30 280 460 80
3 50 310 490 50
我已经尝试了下面的代码,但它没有按预期工作。
df_d['use']=df_d.groupby('id').apply(lambda x: x.loc[x['days'].between(x['days'],x['days_180']),'supply'].sum())
【问题讨论】:
标签: python pandas dataframe pandas-groupby