所有可能的pandas数据框行组合

4

我有一个 pandas 数据帧,其中有 4 行:

df:

col1    col2    col3    col4
A1      A2      A3      A4
B1      B2      B3      B4 
C1      C2      C3      C4
D1      D2      D3      D4

如何找到选择此数据框中两行的所有可能组合。在这种情况下,我可以从4行中选择2行,共有4C2 = 6种可能的方式。

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

and so on.....

1个回答

10
首先,您需要使用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   

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接