2013-07-24 32 views
-1

這些列包括兩個關鍵特徵,一個總結列和一些不重要的其他列(例如1)。在csv文件中添加一個具有相同關鍵特徵的列

key1, key 2, pr, trivial  
abc, 43, 23, haha  
abc, 43, 456, hok  
bcd, 23, 89,kol 

我想添加sum列與SAME key1和key2,並輸出一個3列csv文件。

key1, key2, sumvalueofpr 
在上述情況下

,它是

key1, key2, sumvalueofpr 
abc , 43, 479 
bdc, 23, 89 

(注:479=23+456

做與任一Perl或Shell命令是確定。

+0

'用perl或者shell命令做就行了,只要它有效!'你沒有用perl標記它,而是用python來代替它? – Kent

+0

@andi編輯時,請嘗試修復帖子中的所有內容,不要只添加或移除標籤。 –

回答

0

是否只有key1/key2對的特定值,或者是否要檢查是否有可能的匹配?

你可以做一個較低的性能(但易)方法的代碼,你可以嘗試這樣的方法:

for i in range(0,number_of_rows): 
    for j in range(i+1, number_of_rows): 
     if (key1_from_row_i == key1_from_row_j) and (if (key1_from_row_i == key1_from_row_j)): 
      increment your sum of key1_sum key2_sum 
0

如果AWK是由你接受了,這一個班輪給你預期的輸出:

awk -F, -v OFS=", " 'NR==1{print "key1","key2","sum";next}{a[$1", "$2]+=$3}END{for(x in a)print x,a[x]}' file 
相關問題