2017-09-01 80 views
0

我試圖在通過我的帳戶循環時合併或將數據連接到df。大熊貓在循環時合併/將數據合併到數據幀

首先,我成立了由所有月份索引的空數據幀:

Empty DataFrame 
Columns: [] 
Index: [2014-09-30, 2014-09-30, 2014-10-31, 2014-10-31, 2014-11-30, 2014-11-30, 2014-12-31, 2015-01-31, 2015-02-28, 2015-03-31] 

接下來我環槽的所有帳戶的值添加到數據幀。

for a in accts: 

     cf = Cashflow.objects.all().filter (id = a.id).order_by ('month').values ('month', 'value') 

     df2 = read_frame (cf) 
     df2 = df2.set_index ('month') 

     df = pd.merge (df2, how = 'left', left_index = True, right_index = True) 

但我在我的輸出獲得重複數據:

month       
2014-09-30 535400 122928.0 
2014-09-30 535400 122928.0 
2014-10-31 530719 107389.0 
2014-10-31 530719 107389.0 
2014-11-30 512009 97654.0 
2014-11-30 512009 97654.0 
2014-12-31 482277  0.0 
2015-01-31 474815  0.0 

我已經嘗試了不同的解決方案。

我可以刪除重複的行,但這只是對錯誤代碼的補丁。

這是最好的方法嗎?它應該是一個連接而不是一個合併?

回答

1

您在爲您開始的空數據庫創建的索引中有重複的日期。爲什麼?

+0

我沒有看到重複的日期。啊... – diogenes

+0

.distinct()解決了這個問題。謝謝! – diogenes

1

您的索引中有重複項。

你可以放下他們df.drop_duplicates()