循环:如果在同一日期,结果将通过 += 更新,否则写下一行

永恒1

我有一个函数可以产生这样的输出

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

隐藏元素如果在同一日期并且只使用 ngIf 显示一次

CSV覆盖行(如果同一日期,否则追加到新行)

如果line.startsWith(“ something”)不要写这行也不写下一行

查询单个表并为同一日期时间合并结果

[SQL]从一行中选择同一日期

如果存在则更新一行,否则插入

熊猫根据同一日期合并行

查询同一日期之间的数据

NSPredicate用于检查同一日期

excel SUMIFS仅在同一日期

同一日期只能选择时差

处理同一日期出现的值

同一日期出现多少次

如果满足某些条件,则在组内移动日期至上一年的同一日期

如何在同一日期下显示多个帖子而不在循环中重复相同的日期(php)

在R中使用lubridate包对同一日期字符串使用不同的结果

SQL查询同一日期范围内工作台和PHP脚本之间的不同结果

由同一用户MySQL在同一日期选择多个条目

如何在同一日期将 3 条记录连接为 1 条记录?

SQL中同一日期多行的前一个日期

使用 SQL 窗口函数更新下一行的值?

如何根据下一行中的值更新单列

根据下一行的值更新当前行

SQL - 根据下一行值更新列

在下一行MYSQL中更新值

在 Oracle 中,如何选择(并分配)发生在同一日期的数据行?

当多个条目在同一日期但不同时间时,Python 3 在日期/时间中获得唯一的结果基础

为什么 MongoDB 日期范围查询在查询同一日期和前一天时返回空结果?

在同一日期或最接近的日期(之前或之后)联接两个表