gpt4 book ai didi

python - 在 Pandas 数据框中创建新列作为其他列的总排列

转载 作者:行者123 更新时间:2023-12-02 16:00:31 26 4
gpt4 key购买 nike

希望这个简单的解释能够理解我正在尝试做的事情。假设我有一个包含以下列的 Pandas 数据框:

A B C D E
1 2 4 6 4
3 4 1 2 3
4 7 4 1 4

有谁知道我可以在该表中创建一组新列的方法(无需手动操作),这些列对列的排列子集求和?我一直在进行一些搜索,但没有任何运气,因为这是一个相当具体的查询。

例如,如果我想要 5 列中 3 列子集的总和的所有组合 - 一些额外的行可能如下所示:

ABC ACE BDE
7 9 12
8 7 9
15 12 12

...等等(在这种情况下会有 5C3 = 10 行 - 但我实际上正在查看 7C4 示例)

提前致谢!

最佳答案

使用组合代替排列并将元组和值的每个值放在一起:

from itertools import combinations

cc = list(combinations(df.columns,3))
df = pd.concat([df.loc[:, c].sum(axis=1) for c in cc], axis=1, keys=cc)
df.columns = df.columns.map(''.join)
print (df)
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
0 7 9 7 11 9 11 12 10 12 14
1 8 9 10 6 7 8 7 8 9 6
2 15 12 15 9 12 9 12 15 12 9

关于python - 在 Pandas 数据框中创建新列作为其他列的总排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70784863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com