Python Pandas 在列中求和一个常量值如果日期在两个日期之间

标签 python pandas

让我们假设一个使用日期时间作为索引的数据框,其中我们有一个名为“Score”的列,初始设置为 10:

            score
2016-01-01  10
2016-01-02  10
2016-01-03  10
2016-01-04  10
2016-01-05  10
2016-01-06  10
2016-01-07  10
2016-01-08  10

我想从分数中减去一个固定值(假设为 1),但仅当索引在特定日期之间(例如在第 3 和第 6 之间)时:

            score
2016-01-01  10
2016-01-02  10
2016-01-03  9
2016-01-04  9
2016-01-05  9
2016-01-06  9
2016-01-07  10
2016-01-08  10

由于我的真实数据框很大,我将针对不同的日期范围和每个数据框的不同固定值 N 执行此操作,我想实现这一点而无需为每个创建一个设置为 -N 的新列案例。

类似于 numpy 的 where 函数,但在一定范围内,如果满足条件,则允许我对当前值求和/减去,否则不执行任何操作。有这样的东西吗?

最佳答案

使用索引切片:

df.loc['2016-01-03':'2016-01-06', 'score'] -= 1

关于Python Pandas 在列中求和一个常量值如果日期在两个日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57591480/

相关文章:

python - 如何在 Python 中将不平衡列表添加到数据帧中?

python - Pandas len 根据给定条件

python - Pandas 数据框 : loc vs query performance

python - 如何用python2.6安装psycopg2-2.6

Python函数返回字典?

python - 当矩阵a是二维矩阵,b是三维矩阵时,如何理解matmul函数?

python - networkx 如何处理 2 元组?

python - 使用 pandas 从字符串生成 N-Grams

python - 如何按频率对行进行分组?

python - Pandas 使用列表向列添加二级索引