我有一个表格,其格式如下:
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']
如果索引位于第一个位置(最好使用pandas apply函数),我希望将freq值滞后于之前的值。
例如,在此示例中,“ 2016-07-03”的频率值应替换为15,因为日期在“ lst”中,因此我需要前一天的值。
提前感谢您的帮助!
答案 0 :(得分:1)
使用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