You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现多字典内多DataFrame指定日期的数值求和

按日期合并多字典中DataFrame并求和

需求描述

我有两个字典,每个字典包含两个不同大小的DataFrame,所有DataFrame都共享Date和# of Apples列。需要创建results_df,包含Date和Sum of Apples列,对所有四个DataFrame中匹配日期的# of Apples数值求和,缺失日期的求和结果填0。

示例数据

import pandas as pd

# 构造示例DataFrame
df1 = pd.DataFrame({'Date': ['2023-01-01', '2023-01-03'], '# of Apples': [5, 2]})
df2 = pd.DataFrame({'Date': ['2023-01-01', '2023-01-04'], '# of Apples': [1, 4]})
dict1 = {'df1': df1, 'df2': df2}

df3 = pd.DataFrame({'Date': ['2023-01-03', '2023-01-04'], '# of Apples': [2, 5]})
df4 = pd.DataFrame({'Date': ['2023-01-01', '2023-01-03'], '# of Apples': [4, 3]})
dict2 = {'df3': df3, 'df4': df4}

期望结果

results_df:
         Date  Sum of Apples
0  2023-01-01             10
1  2023-01-02              0
2  2023-01-03              7
3  2023-01-04              9

高效解决方案

利用Pandas的concat、groupby和reindex特性,无需循环遍历,高效实现需求:

  1. 收集所有DataFrame:把两个字典里的DataFrame提取到一个列表中
  2. 合并并分组求和:用concat合并所有DataFrame,按Date分组求和
  3. 补全缺失日期:生成完整的日期序列,用reindex填充缺失日期的求和值为0
# 1. 收集所有DataFrame
all_dfs = list(dict1.values()) + list(dict2.values())

# 2. 合并并按日期求和
sum_df = pd.concat(all_dfs).groupby('Date')['# of Apples'].sum().reset_index()
sum_df.columns = ['Date', 'Sum of Apples']

# 3. 生成完整日期序列(以示例中的日期范围为例,可根据实际调整)
min_date = pd.to_datetime(sum_df['Date']).min()
max_date = pd.to_datetime(sum_df['Date']).max()
full_dates = pd.date_range(start=min_date, end=max_date).strftime('%Y-%m-%d')

# 4. 补全缺失日期,填充0
results_df = sum_df.set_index('Date').reindex(full_dates, fill_value=0).reset_index()
results_df.columns = ['Date', 'Sum of Apples']

print(results_df)

代码解释

  • 收集DataFrame:list(dict.values())直接提取字典中的所有DataFrame,拼接成列表,无需逐个访问键名
  • 合并分组求和:concat批量合并所有DataFrame,groupby('Date').sum()自动按日期聚合求和,比循环高效得多
  • 补全日期:date_range生成完整的日期序列,reindex对齐求和结果,缺失日期自动填充0,完美符合需求

如果需要扩展日期范围(比如包含示例中的2023-01-05),只需调整date_range的end参数即可,比如:

full_dates = pd.date_range(start='2023-01-01', end='2023-01-05').strftime('%Y-%m-%d')

内容的提问来源于stack exchange,提问作者M04RC4GR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:31:35