如何基于日期索引聚合求和生成新的Pandas DataFrame
Pandas按日期维度聚合求和实现方案
针对你拥有的以yyyy-mm-dd hh:mm:ss格式为索引的DataFrame,按日期维度聚合并对两列求和可以通过以下两种简洁方法实现:
方法一:使用resample按天聚合
resample是Pandas针对时间序列数据的专用聚合工具,指定频率为'D'(代表天)即可按日期分组求和:
import pandas as pd # 构造示例数据(模拟你的原DataFrame) data = { 'Column 1': [2, 3, 3, 2], 'Column 2': [1, 1, 1, 10] } time_index = pd.to_datetime([ '2022-11-18 12:41:00', '2022-11-18 12:42:00', '2022-11-19 21:43:00', '2022-11-19 21:45:00' ]) df = pd.DataFrame(data, index=time_index) # 按日期聚合求和 daily_sum_df = df.resample('D').sum() # 将索引重命名为'Time'(匹配你的期望格式) daily_sum_df.index.name = 'Time' print(daily_sum_df)
输出结果:
Time Column 1 Column 2 2022-11-18 5 2 2022-11-19 5 11
方法二:使用groupby按索引日期分组
通过提取索引的date属性进行分组,同样可以实现按日期求和:
# 按索引的日期部分分组求和 daily_sum_df = df.groupby(df.index.date).sum() # 将分组后的日期索引转换为datetime格式并命名 daily_sum_df.index = pd.to_datetime(daily_sum_df.index) daily_sum_df.index.name = 'Time' print(daily_sum_df)
输出结果与方法一完全一致。
注意事项
如果你的DataFrame索引尚未转换为datetime类型,需要先执行以下转换:
df.index = pd.to_datetime(df.index)
内容的提问来源于stack exchange,提问作者JosephDing
相关产品推荐
相关产品推荐

