gpt4 book ai didi

python - 如何创建 Pandas 列的所有可能组合?

转载 作者:行者123 更新时间:2023-12-03 23:07:31 25 4
gpt4 key购买 nike

考虑以下 Pandas DF:

col1 col2 col3
1 3 1
2 4 2
3 1 3
4 0 1
2 4 0
3 1 5

如何创建每个 Pandas 数据帧的所有值的所有可能组合总和?例如:
col1 col2 col3 col1_col2 col1_col3 col2_col3
1 3 1 4 2 4
2 4 2 6 4 6
3 1 3 4 6 4
4 0 1 4 5 1
2 4 0 6 2 4
3 1 5 4 8 6

知道如何在新列中获取所有可能的总和/列组合值吗?

最佳答案

使用 itertools.combinations f-string s 用于新列名称的格式:

from  itertools import combinations

for i, j in combinations(df.columns, 2):
df[f'{i}_{j}'] = df[i] + df[j]

print (df)
col1 col2 col3 col1_col2 col1_col3 col2_col3
0 1 3 1 4 2 4
1 2 4 2 6 4 6
2 3 1 3 4 6 4
3 4 0 1 4 5 1
4 2 4 0 6 2 4
5 3 1 5 4 8 6

使用 list comprehension 的解决方案, concat DataFrame.join 附加到原件:
dfs = [(df[i] + df[j]).rename(f'{i}_{j}') for i, j in combinations(df.columns, 2)]
df = df.join(pd.concat(dfs, axis=1))
print (df)
col1 col2 col3 col1_col2 col1_col3 col2_col3
0 1 3 1 4 2 4
1 2 4 2 6 4 6
2 3 1 3 4 6 4
3 4 0 1 4 5 1
4 2 4 0 6 2 4
5 3 1 5 4 8 6

关于python - 如何创建 Pandas 列的所有可能组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61436630/

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