如何在Python中合并多DataFrame指定列并计算行均值?
解决方法
直接按以下步骤操作即可,代码包含详细注释:
1. 提取并整理所有DataFrame的'd'列
先从列表里的每个DataFrame中取出'd'列,给每个列赋予唯一名称(避免合并后列名冲突):
import pandas as pd # 假设你的dataFrameList已存在,比如:dataFrameList = [df1, df2, df3, ...] # 提取每个df的'd'列并命名 d_columns = [df['d'].rename(f'd_{i}') for i, df in enumerate(dataFrameList)]
2. 横向合并成newDataFrame
用pd.concat横向拼接所有提取出的列,因为行数不同,使用join='outer'保留所有行,缺失值自动填充为NaN:
newDataFrame = pd.concat(d_columns, axis=1, join='outer')
3. 计算每行的均值
直接调用mean()方法,指定axis=1按行计算,默认会忽略NaN值:
newDataFrame['mean_d'] = newDataFrame.mean(axis=1)
关键点说明
- 给提取的'd'列重命名是必须的,否则所有列都叫'd',合并后会出现重复列名,后续操作容易出错
join='outer'保证了不管原始DataFrame行数多少,所有行都会被保留,缺失的位置用NaN填充- 如果需要把
NaN当作0计算均值,可以修改为:newDataFrame.fillna(0).mean(axis=1)
内容的提问来源于stack exchange,提问作者Na.Az
相关产品推荐
相关产品推荐

