python 获取Pandas Dataframe 中多个列的所有组合,并计算每个组合的总和

q8l4jmvw  于 2022-12-02  发布在  Python
关注(0)|答案(1)|浏览(199)

我有一个 Dataframe 如下:

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'的所有组合,并计算每个组合的总和。我可以使用itertools得到所有组合

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

但是我怎样才能得到每个组合的总和,并在 Dataframe 中创建一个新列呢?

id  colA  colB  colC  colD  colA+colB  colB+colC ... colA+colB+colC+colD
a   1     5     9     13    6          14        ... 28
b   2     6     10    14    8          16        ... 32
c   3     7     11    15    10         18        ... 36
d   4     8     12    16    12         20        ... 40
dpiehjr4

dpiehjr41#

首先,从帧中选择以col开头的所有列的列表。然后,我们使用combinations创建一个字典,其中键是新求和列的名称,值是原始 Dataframe 的相应列的和,然后,我们将它们解包为**作为assign方法的参数,从而添加到帧中
第一个

相关问题