总结不同的日期和类别
Posted
技术标签:
【中文标题】总结不同的日期和类别【英文标题】:Summing different dates and categories 【发布时间】:2021-10-25 19:36:08 【问题描述】:所以我有一个 pandas 数据框,它按日期和特定类别分组,并具有另一列的总和。我想做的是获取特定日期的特定类别的数字并将其添加到第二天,然后获取该数字并将其添加到第二天。例如,假设类别是苹果,日期是 5-26-2021,成本是 5 美元。第二天,2021 年 5 月 27 日是 6 美元。所以 2021 年 5 月 27 日的费用应该是 11 美元。然后 2021 年 5 月 28 日的成本为 3 美元,但应添加到 11 美元,因此成本应显示为 14 美元。我该怎么做呢?顺便说一句,除了苹果之外,还有多个类别。谢谢! enter image description here 预期输出: (输出不是最准确的,这个数据框也不是最准确的,请随时提问)
【问题讨论】:
你能添加一个数据框的样本和预期的输出吗? 我添加了一个非常粗略的例子。基本上,会有多个日期,每个日期会有多个类别,每个类别和日期都会有成本。我希望输出基本上给我一个前一天加到当天的总和 【参考方案1】:使用 groupby 然后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
【讨论】:
我错了,它确实有效,非常感谢!以上是关于总结不同的日期和类别的主要内容,如果未能解决你的问题,请参考以下文章