Python中pandas.DataFrame两列数值求和合并为单列的语法问题
问题原因
你编写的代码缺少agg()方法必填的聚合函数参数,仅指定了运算轴无法触发求和逻辑,因此得不到预期结果。
可行解决方案
- 方法1:直接对两列做加法运算(最简洁,适合仅两列求和的场景)
注意:该写法如果遇到列中存在空值,会返回空值,需要忽略空值求和建议选择方法2。df['name'] = df['name1'] + df['name2'] - 方法2:补全agg方法的聚合函数参数(兼容你原有的写法,适合多列批量求和场景)
df['name'] = df[['name1', 'name2']].agg('sum', axis=1) - 方法3:使用apply方法按行求和
df['name'] = df[['name1', 'name2']].apply(lambda x: x['name1'] + x['name2'], axis=1)
如果需要得到和示例完全一致、删除原name1、name2列的结果,追加执行以下代码即可:
df = df.drop(columns=['name1', 'name2'])
完整可运行测试代码
import pandas as pd # 构造示例数据 data = { 'id': ['aa', 'bb', 'cc'], 'name1': [1, 2, 0], 'name2': [0, 2, 1], 'status': ['y', 'n', 'y'] } df = pd.DataFrame(data) # 生成新列 df['name'] = df['name1'] + df['name2'] # 删除旧列 df = df.drop(columns=['name1', 'name2']) print(df)
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

