2017-04-14 94 views
1

我有以下矩阵:从矩阵数据框中提取组合的列表及其计数值?

import pandas as pd 

df_test = pd.DataFrame({'TFD' : ['AA', 'SL', 'BB', 'D0', 'Dk', 'FF'], 
        'Snack' : ['1', '0', '1', '1', '0', '0'], 
        'Trans' : ['1', '1', '1', '0', '0', '1'], 
        'Dop' : ['1', '0', '1', '0', '1', '1']}).set_index('TFD') 
df_test = df_test.astype(int) 
matrix = df_test.T.dot(df_test) 
print matrix 
=>>> 
      Dop Snack Trans 
    Dop  4  2  3 
    Snack 2  3  2 
    Trans 3  2  4 

我想得:提前

Dop-Snack  2  
Snack-Trans 2  
Trans-Dop  3  

谢谢!

回答

2

假设有关于对的顺序没有特殊要求:

import itertools 
for c, r in itertools.combinations(matrix.columns, 2): 
    print("{}-{}\t{}".format(c, r, matrix.loc[c, r])) 

# Dop-Snack  2 
# Dop-Trans  3 
# Snack-Trans 2 

https://docs.python.org/2/library/itertools.html#itertools.combinations

+0

输入错误与R中的K,但我得到了它,非常感谢兄弟:d –

+0

真,不该现场编辑过多。不用谢 ;) – mhoff