合并三个DataFrame:ops列求和、lat列求均值的实现方法
解决方案
首先需要处理DataFrame中ops和lat列的格式问题——当前这两列是带逗号的字符串,必须先转换为数值类型才能进行运算:
import pandas as pd # 定义清洗函数:去除逗号并转为整数 def clean_numeric_cols(df): df['ops'] = df['ops'].str.replace(',', '').astype(int) df['lat'] = df['lat'].str.replace(',', '').astype(int) return df # 清洗三个DataFrame A = clean_numeric_cols(A) B = clean_numeric_cols(B) C = clean_numeric_cols(C)
以下两种方法都能实现你的需求:
方法一:利用concat+聚合运算
先按列拼接三个DataFrame,再按行索引分组进行聚合:
# 按列拼接,得到包含重复列名的临时DataFrame combined = pd.concat([A, B, C], axis=1) # 对ops列求和,lat列求平均 result = pd.DataFrame({ 'ops': combined['ops'].sum(axis=1), 'lat': combined['lat'].mean(axis=1) })
方法二:直接元素级运算
由于三个DataFrame的行索引完全对齐,可以直接对对应列做元素级加减运算:
result = pd.DataFrame({ 'ops': A['ops'] + B['ops'] + C['ops'], 'lat': (A['lat'] + B['lat'] + C['lat']) / 3 })
最终得到的result就是目标DataFrame:每行的ops为三个原DataFrame对应行的求和结果,lat为对应行的平均值。
内容的提问来源于stack exchange,提问作者skasi
相关产品推荐
相关产品推荐

