2015-08-19 56 views
1

如何合併兩個熊貓數據透視表? 當我嘗試運行我的代碼有錯誤:KeyError異常合併熊貓中的幾個數據透視表

data_pivot= pandas.DataFrame(data.pivot_table(values = 'NR_ACTIONS', index=["HOUR", "OPID", "NAME"], columns='CONTACTED_PERSON_NEW', aggfunc='sum')) 
data_pivot.fillna(0, inplace=True) 
data2_pivot= pandas.DataFrame(data2.pivot_table(values = 'AMOUNT_PA', index=["HOUR", "OPID", "NAME"], columns='PA_TYPE', aggfunc='sum')) 
data2_pivot.fillna(0, inplace=True) 
all_data = pandas.merge(data_pivot, data2_pivot, 'left', on = ["HOUR", "OPID", "NAME"]) 

回答

3

答案我的問題是:

data_pivot= pandas.DataFrame(data.pivot_table(values = 'NR_ACTIONS', index=["HOUR", "OPID", "NAME"], columns='CONTACTED_PERSON_NEW', aggfunc='sum')) 
data_pivot.fillna(0, inplace=True) 
data_pivot.reset_index(inplace=True) 
data2_pivot= pandas.DataFrame(data2.pivot_table(values = 'AMOUNT_PA', index=["HOUR", "OPID", "NAME"], columns='PA_TYPE', aggfunc='sum')) 
data2_pivot.fillna(0, inplace=True) 
data2_pivot.reset_index(inplace=True) 
all_data = pandas.merge(data_pivot, data2_pivot, 'left', on = ["HOUR", "OPID", "NAME"]) 
+0

這是偉大的,什麼是reset_index這樣做,它修復了關鍵錯誤?謝謝 – jeangelj

+0

在pivot_table過程之後嘗試操作df後,出現了相同的'關鍵錯誤'問題。 df.reset_index(inplace = true)有效!雖然做一個匹配函數「.isin」比較兩個df導致了一個「NoneType」對象錯誤,但解決方法是忽略「inplace = true」。所以df.reset_index()是最終的答案。 –