2017-09-25 62 views
-1

我想要做的就是使用地圖函數將數據透視表綁定到另一個數據框。 A1:A4是表示不同位置的列。因此,數據透視表中的值代表A1或A3處的實例數量等。Python熊貓地圖透視回數據框

我有一個數據框和一個數據透視表。數據幀(DF1)看起來是這樣的:

SubscriberKey Inst A1 A2 A3 A4 
     'abc'  1  0 0  0 0 
     'bcd'  2  0 0  0 0 
     'cde'  1  0 0  0 0 
     'def'  3  0 0  0 0 
     'efg'  0  0 0  0 0 

我的透視表(PT1)看起來是這樣的:

    Instance Instance Instance Instance 
    SubscriberKey A1  A2  A3  A4 
     'abc'  1   0  2  0 
     'bcd'  0   1  1  2 
     'cde'  1   1  0  0 

我想以某種方式填充我DF的A1:A4列,根據是什麼樞軸。 df擁有比樞軸表包含更多的訂戶鍵,所以行數不一樣。

輸出將如下所示:

SubscriberKey A1 A2  A3 A4 
     'abc'  1 0  2 0 
     'bcd'  0 1  1 2 
     'cde'  1 1  0 0 
     'def'  0 0  0 0 
     'efg'  0 0  0 0 

任何幫助表示感謝,謝謝!

+0

我認爲你需要改寫問題和/或顯示自你的陳述以來的期望輸出「df擁有的數據庫鍵數比數據透視表包含的數量多,因此行數不相同。」對於你給的樣品不是這樣。根據你所說的,你可能想要使用'reindex'方法。 – JoeCondron

+0

hi @JoeCondron。對於我編輯帖子感到抱歉 – user6749426

回答

1

根據你給的樣品,你可以做

pt1['Instance'].reindex_like(df1.drop('Inst', axis=1)).fillna(0).astype(int) 

你或許應該檢查這個計算每一步的輸出給的它是如何工作的想法。