让我们假设一个使用日期时间作为索引的数据框,其中我们有一个名为“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/