私のアカウントをループしながら、データを結合したり結合したりしようとしています。pandasループ中にデータフレームにデータをマージ/結合する
まず、私はすべての月でインデックス化空のデータフレームの設定:データフレームに値を追加するには、すべてのアカウント
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]
次のIループトラフを。
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
私は別の解決策を試してみました。
重複する行は削除できますが、それは不正なコードのパッチに過ぎません。
これが最適な方法ですか?それは結合であってマージではないでしょうか?
私は重複した日付は見ませんでした。 Ah ... – diogenes
.distinct()が問題を解決しました。ありがとう! – diogenes