Python 如何创建所有可能的列组合?
考虑以下因素:Python 如何创建所有可能的列组合?,python,python-3.x,pandas,itertools,Python,Python 3.x,Pandas,Itertools,考虑以下因素: col1 col2 col3 1 3 1 2 4 2 3 1 3 4 0 1 2 4 0 3 1 5 如何创建每个数据帧的所有值的所有可能组合和?例如: col1 col2 col3 col1_col2 col1_col3 col2_col3 1 3 1 4 2 4 2 4 2 6 4
col1 col2 col3
1 3 1
2 4 2
3 1 3
4 0 1
2 4 0
3 1 5
如何创建每个数据帧的所有值的所有可能组合和?例如:
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
知道如何在新列中获得所有可能的总和/列组合值吗?与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
具有列表理解功能的解决方案
,以及附加到原始文件的解决方案:
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
哇!我不知道你可以用itertools这样的组合@风滚草你为什么还没有接受耶斯雷尔的回答?