【发布时间】:2022-11-22 18:45:20
【问题描述】:
我试图根据日期列(根据索引计算)进行切片,并且仅根据切片行进行累积求和。
这是要复制/运行的小示例代码:
import numpy
import pandas
data = pandas.DataFrame(
{"Bought" : [1,3,4,6]}, index=pandas.to_datetime(['01-01-2020','02-01-2020','03-01-2020','04-01-2020']))
data['StartDate'] = data.index
data['Cum bought2'] = data.loc[data['StartDate']:]['Bought'].cumsum()
它给我错误“无法使用这些索引器对 DatetimeIndex 进行切片索引”。 如果我将 data.loc[data['StartDate']:] 更改为设定值(即“02-01-2020”),则它可以正常工作。但我希望开始日期可变并取自另一列。
新编辑:由于第一个答案,下面的解决方案到达那里。如果 NaT 在参考栏中,有什么解决办法吗?我不想删除该行。
import numpy
import pandas
data = pandas.DataFrame(
{"Bought" : [1,3,4,6]}, index=pandas.to_datetime(['01-01-2020','02-01-2020','03-01-2020','04-01-2020']))
data['StartDate'] = [pandas.NaT,'02-01-2020','04-01-2020','04-01-2020']
data['Cum Bought'] = data.loc[data['StartDate'].iloc[0]:]['Bought'].cumsum()
【问题讨论】: