我有一个格式如下的表:
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.isin
和ffill
:
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