熊猫数据框行的所有可能组合

时间:2018-08-08 12:22:19

标签: python pandas combinations

我有一个包含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

以此类推.....

1 个答案:

答案 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