对不同的日期和类别求和



我有一个pandas数据框架,它按日期和特定类别分组,并具有另一列的和。我想做的是把某一天某一类商品的价格加到第二天再把这个价格加到第二天。例如,假设类别是苹果,日期是5-26-2021,成本是5美元。第二天,5-27-2021是6美元。所以5-27-2021的成本应该是11美元。5-28-2021的成本是3美元,但应该加到11美元,所以成本应该显示为14美元。我该怎么做呢?顺便说一下,除了苹果还有很多种类。谢谢你!在这里输入图像描述预期的输出:(输出不是最准确的,这个数据帧也不是最准确的,所以请随意提问)

使用groupby then cumsum

data = [
[2021, 'apple', 1,],
[2022, 'apple', 2,],
[2021, 'banana', 3,],
[2022, 'cherry', 4],
[2022, 'banana', 5],
[2023, 'cherry', 6],
]
columns = ['date','category', 'cost']
df = pd.DataFrame(data, columns=columns)
>>> df
date category  cost
0  2021    apple     1
1  2022    apple     2
2  2021   banana     3
3  2022   cherry     4
4  2022   banana     5
5  2023   cherry     6
df.sort_values(['category','date'], inplace=True)
df.reset_index(drop=True, inplace=True)
df['CostCsum'] = df.groupby(['category'])['cost'].cumsum()
date category  cost  CostCsum
0  2021    apple     1         1
1  2022    apple     2         3
2  2021   banana     3         3
3  2022   banana     5         8
4  2022   cherry     4         4
5  2023   cherry     6        10

最新更新