根据list-python中的条件滞后一个值



我有一个格式如下的表:

testdf = pd.DataFrame({"date":['2016-07-01','2016-07-02','2016-07-03','2016-07-04'],"freq": [10,15,20,13]})
testdf = testdf.set_index("date")
lst = ['2016-07-03', '2016-07-13']

如果索引在lst中,我想将freq值滞后于之前的值(最好使用pandas-apply函数(。

例如,在这个例子中,"2016-07-03"的freq值应该被替换为15,因为日期在"lst"中,所以我想要前一天的值。

感谢您提前提供的帮助!

使用pd.Index.isinffill:

testdf.freq.mask(testdf.index.isin(lst)).ffill().to_frame()
freq
date            
2016-07-01  10.0
2016-07-02  15.0
2016-07-03  15.0
2016-07-04  13.0