2016-03-21 23 views
0

如何編寫熊貓或python代碼以從我的數據中獲取矩陣?我有以下表格:從使用熊貓或python的數據獲取矩陣

Item Route Order 
R124 A1 1 
R124 A2 2 
R124 A3 3 
R124 A4 4 
R124 A4 4 
R126 A5 1 
R126 A6 2 
R126 A7 3 
R126 A7 3 

我所需的輸出是:

A1 A2 A3 A4 A5 A6 A7 
R124 1 1 1 2 0 0 0 
R126 0 0 0 0 1 1 2 

爲了獲得矩陣,採用獨特的「項目」值成爲行名稱。例如,R124在'訂單'列中有1個條目映射到'路線'列中的A1,A2和A3,以及2個條目映射到'路線'列中的A4。映射條目的數量相應記錄。由於R124沒有對A5,A6和A7的'路線'列進行'訂購'條目映射,因此記錄零點,如輸出矩陣所示。

回答

1

你只需要pivot_table

如果你的數據幀DF:

df.pivot_table(index="Item",columns="Route",values="Order",aggfunc='count') 

給出:

Route A1 A2 A3 A4 A5 A6 A7 
Item          
R124 1.0 1.0 1.0 2.0 NaN NaN NaN 
R126 NaN NaN NaN NaN 1.0 1.0 2.0 

,並完全模仿你想要的答案只需添加fillnaastype

df.pivot_table(index="Item",columns="Route",values="Order",aggfunc='count').fillna(0).astype(int) 

Route A1 A2 A3 A4 A5 A6 A7 
Item        
R124 1 1 1 2 0 0 0 
R126 0 0 0 0 1 1 2 
+0

優秀!正是我想要的。謝謝@tvashtar – user27976