2017-07-14 138 views
2

的數字列所有夫婦,我有以下csv文件:比較一個數據幀

C1,C2,C3,C4,C5,C6,C7 
0,1,1,1,1,1,1 
1,1,1,1,1,1,1 
0,1,1,1,0,0,1 
0,1,0,1,0,0,1 
0,1,1,1,1,1,1 
1,1,1,1,1,1,1 

我想創建一個數據幀比較列對。 我想算的次數每對列的分享值1。所以,對於數據的問題開始表現,我想生成以下數據框:

C1 C2 C3 C4 C5 C6 C7 
C1 
C2 
C3 
C4 
C5 
C6 
C7 

[C1,C1]將包含的次數C1爲等於1:

AWK -F '' '$ 1 == 1' f.csv | WC -l

[C1,C2]將包含的次數C1是等於C2和等於1

AWK -F ''「$ 1 == 1 & & $ 1 == $ 2'f.csv | wc -l

有沒有更簡單的方法來計算?也許使用pandas

回答

4

如果數據幀只包含1和0,你可以使用矩陣乘法dot

df = pd.read_csv("/path/to/csvfile") 

df.T.dot(df) 

enter image description here

+2

整潔和天才的解決方案!謝謝+ 1 – Wen

+2

哇。難以置信。剛剛好。 – cucurbit

+1

我同意他們^^^ – piRSquared

相關問題