我有一个函数可以产生这样的输出
date cashflow count etc
1/1/2000 40 3 ...
总是单线。这是多次创建的,具有相同或不同的日期。现在我想要所有结果的记录
date cashflow count etc
1/1/2000 40 3 ...
因此,如果新结果具有相同的日期/索引,则应添加和更新该字段,即通过“+=”,但是如果表中尚不存在不同的日期,则应仅附加并为进一步的“更新”提供基础,即
新结果
date cashflow count etc
1/1/2000 -20 1 ...
那么我的表应该显示
date cashflow count etc
1/1/2000 20 4 ...
但是,如果新结果出现在表中尚不存在的日期
date cashflow count etc
2/1/2000 10 20 ...
然后我的桌子看起来像
date cashflow count etc
1/1/2000 20 4 ...
2/1/2000 10 20 ...
编辑 1:似乎我的问题没有说清楚:程序看起来如何可以:
1) 如果索引一致:更新值 +=
2) 如果索引不存在,则通过该行扩展表
edit2:如果我的日期设置为索引,我将如何更改以下代码?
edit3:不知何故,这在循环中不起作用:在一个简单的设置中,这些单行代码中的每一个都是 pd.DataFrames。但是,在循环中,它们似乎是其他东西,因此我收到错误消息:
AttributeError: 'NoneType' object has no attribute 'groupby'
如果我不groupby
使用并且只使用sum
:
AttributeError: 'NoneType' object has no attribute 'sum'
我认为循环正在创建某种数据框列表;附加仅有效。
您可以使用DataFrame.append
然后按要用作索引的列进行分组。
假设这total_df
是您要添加新行new_df
的表,是包含这些新行的表,date
是要用作索引的列。然后你可以使用:
total_df.append(new_df).groupby(by='date').sum()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句