Pandas多个含同名列DataFrame按公共日期索引合并并对公共值求和
Pandas合并多份同列名日期索引DataFrame并对同日期数值求和
通用解决方案(支持任意数量的待合并DataFrame)
操作步骤非常简单:
- 把所有需要合并的DataFrame整理到一个列表中
- 先用
pd.concat拼接所有DataFrame,再按索引分组求和即可
完整代码示例:
import pandas as pd import numpy as np # 你的示例数据 range1 = pd.date_range('2021-10-01','2021-11-01') range2 = pd.date_range('2021-11-01','2021-12-01') df1 = pd.DataFrame(np.random.rand(len(range1),1), columns=['value'], index=range1) df2 = pd.DataFrame(np.random.rand(len(range2),1), columns=['value'], index=range2) # 核心处理代码 dfs = [df1, df2] # 有更多DataFrame直接追加到这个列表即可 merged_df = pd.concat(dfs).groupby(level=0).sum()
运行后得到的merged_df就是你需要的结果:总长度为62行,2021-11-01对应的value为两个DataFrame中该日期的数值之和。
双DataFrame场景简化写法
如果只有两个待合并的DataFrame,也可以直接用add方法实现,效果完全一致:
merged_df = df1.add(df2, fill_value=0)
内容的提问来源于stack exchange,提问作者laszlopanaflex
相关产品推荐
相关产品推荐

