如何在Pandas中按日期分组数据并计算求和值?
如何在Pandas中按日期分组数据并计算求和值?
嘿,这问题我太熟了!要实现按日期分组计算每日总销售额,用Pandas的基础分组聚合操作就能轻松搞定,咱们直接上干货:
首先先确认你的数据结构,你给出的示例DataFrame是这样的:
import pandas as pd df = pd.DataFrame({ 'date': ['2024-01-01', '2024-01-01', '2024-01-02'], 'sales': [100, 150, 200] })
核心解决方案
只需要一行代码,用groupby()按date列把相同日期的行归为一组,再指定sales列调用sum()计算每组的总和就行:
daily_total = df.groupby('date')['sales'].sum()
运行这段代码后,你会得到一个Series结果,格式如下:
date 2024-01-01 250 2024-01-02 200 Name: sales, dtype: int64
可选:将结果转为标准DataFrame
如果你希望结果保持DataFrame格式(把date从索引变回普通列),只需要在代码末尾加上reset_index():
daily_total_df = df.groupby('date')['sales'].sum().reset_index()
得到的结果就是结构清晰的DataFrame:
date sales 0 2024-01-01 250 1 2024-01-02 200
小提示
如果你的date列是datetime类型(而非字符串),这个方法同样完全适用,Pandas会自动识别相同日期完成分组。要是之后需要按周、月甚至季度做聚合,只需要把groupby的键换成对应的日期属性就行,比如df.groupby(df['date'].dt.month)['sales'].sum()就能快速得到每月总销售额。
内容来源于stack exchange
相关产品推荐
相关产品推荐

