2017-04-14 30 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