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

如何计算DataFrame非重复列组合总计并保留至原表

实现方法

可以通过以下步骤完成需求:

  1. 生成非重复列组合:使用itertools.combinations生成所有无序的列对,自动排除a_b和b_a这类重复组合,4列的话会得到C(4,2)=6种有效组合。
  2. 计算组合列的总计并添加到原DataFrame:遍历每个列组合,对每行计算两列的和,以列名1_列名2作为新列名,将结果添加到原DataFrame中。

完整代码示例

import pandas as pd
from itertools import combinations

# 初始化原始DataFrame
df = pd.DataFrame({'a': [1,2,3,4,2], 'b': [3,4,1,0,4], 'c':[1,2,3,1,0], 'd':[3,2,4,1,4]})

# 生成所有非重复的列组合(无序)
column_combinations = combinations(df.columns, 2)

# 遍历组合,计算每行的和并添加为新列
for cols in column_combinations:
    col_name = f"{cols[0]}_{cols[1]}"
    df[col_name] = df[cols[0]] + df[cols[1]]

# 查看结果
print(df)

结果说明

执行后,原DataFrame会新增6个列:a_b、a_c、a_d、b_c、b_d、c_d,每个列对应原两列的行级求和结果,完全满足非重复组合总计的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:01:17