Skip to main content
 首页 » 编程设计

python之Pandas 数据框行的所有可能组合

2025年05月04日19me-sa

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

等等......

请您参考如下方法:

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