You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pandas DataFrame多列的所有组合计算和并新增对应列?

问题描述

现有如下Pandas DataFrame:

import pandas as pd
df = pd.DataFrame({'id': ['a', 'b', 'c', 'd'], 
                   'colA': [1, 2, 3, 4], 
                   'colB': [5, 6, 7, 8], 
                   'colC': [9, 10, 11, 12], 
                   'colD': [13, 14, 15, 16]})

需要获取colA、colB、colC、colD的所有长度≥2的组合,计算每个组合的和并作为新列添加到原DataFrame中。已通过itertools获取所有组合:

from itertools import combinations
cols = ['colA', 'colB', 'colC', 'colD']
all_combinations = [c for i in range(2, len(cols)+1) for c in combinations(cols, i)]

如何完成后续的求和与列添加操作?预期输出包含所有组合的求和列,例如colA+colB、colB+colC直至colA+colB+colC+colD。

解决方案

遍历已生成的组合列表,对每个组合对应的列求和,并用组合名称拼接成新列名添加到DataFrame中:

# 遍历所有列组合
for combo in all_combinations:
    # 拼接新列名(用+连接组合中的列名)
    new_col_name = '+'.join(combo)
    # 计算组合列的行和,添加为新列
    df[new_col_name] = df[list(combo)].sum(axis=1)

执行上述代码后,原DataFrame会自动新增所有符合要求的求和列,结果与预期输出完全一致。

内容的提问来源于stack exchange,提问作者crx91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:50:20