如何在Python中将汇总DataFrame添加到DataFrame字典中?
批量求和DataFrame字典的高效方法
针对你手动逐个相加的低效问题,这里有两种更简洁的批量实现方式:
方法一:用functools.reduce累积相加
借助reduce函数可以迭代字典里的所有DataFrame,自动完成连续相加操作,同时通过fill_value=0处理缺失的行列数据:
from functools import reduce import pandas as pd # 对字典中所有DataFrame进行累积求和 d['total'] = reduce(lambda df_a, df_b: df_a.add(df_b, fill_value=0), d.values())
这个方法逻辑和你手动相加完全一致,只是用代码自动完成了重复步骤,适配所有行列结构的DataFrame。
方法二:用pd.concat拼接后求和
如果你的所有DataFrame的索引和列名基本对齐,也可以先拼接再按索引求和:
import pandas as pd # 取出字典里的所有DataFrame,拼接后按索引分组求和 df_list = list(d.values()) d['total'] = pd.concat(df_list).groupby(level=0).sum(min_count=1).fillna(0) # 行列完全对齐时可用简化写法 # d['total'] = pd.concat(df_list).sum(level=0, fill_value=0)
两种方法都能避免手动重复编写add语句,不管字典里有多少个DataFrame都能一次处理完成。
内容的提问来源于stack exchange,提问作者stevearama111
相关产品推荐
相关产品推荐

