我有一个包含4行的pandas数据框:
df:
col1 col2 col3 col4
A1 A2 A3 A4
B1 B2 B3 B4
C1 C2 C3 C4
D1 D2 D3 D4
我如何找到选择此数据帧两行的所有可能组合。在这种情况下,我可以采用4C2 = 6种可能的方式从4行中选择2行
df1:
col1 col2 col3 col4
A1 A2 A3 A4
B1 B2 B3 B4
df2:
col1 col2 col3 col4
A1 A2 A3 A4
C1 C2 C3 C4
df3:
col1 col2 col3 col4
A1 A2 A3 A4
D1 D2 D3 D4
以此类推.....
答案 0 :(得分:5)
首先,您需要使用itertools
找到所有组合,然后将combinations
的输出用作数据框的索引。您将获得给定行数的所有可能数据框。
from itertools import combinations
for index in list(combinations(df.index,2)):
print(df.loc[index,:])
print('\n')
输出将是:
col1 col2 col3 col4
0 A1 A2 A3 A4
1 B1 B2 B3 B4
col1 col2 col3 col4
0 A1 A2 A3 A4
2 C1 C2 C3 C4
col1 col2 col3 col4
0 A1 A2 A3 A4
3 D1 D2 D3 D4
col1 col2 col3 col4
1 B1 B2 B3 B4
2 C1 C2 C3 C4
col1 col2 col3 col4
1 B1 B2 B3 B4
3 D1 D2 D3 D4
col1 col2 col3 col4
2 C1 C2 C3 C4
3 D1 D2 D3 D4