我正在尝试在循环浏览帐户时将数据合并或加入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
我尝试过不同的解决方案。
我可以删除重复的行,但这只是坏代码的补丁。
这是最好的方法吗?它应该是一个连接而不是合并吗?
答案 0 :(得分:1)
您为自己开始使用的空数据库创建的索引中有重复的日期。为什么呢?
答案 1 :(得分:1)
您的指数中有重复项。
您可以按df.drop_duplicates()