根据列表中的条件延迟值-python

时间:2018-12-04 05:31:29

标签: python pandas datetime dataframe

我有一个表格,其格式如下:

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”中,因此我需要前一天的值。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

使用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