首页 > 解决方案 > 根据列表中的条件滞后一个值 - 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 中(最好使用 pandas apply 函数),我想将 freq 值滞后于之前的值。

例如,在此示例中,“2016-07-03”的频率值应替换为 15,因为日期位于“lst”中,因此我想要前一天的值。

提前感谢任何帮助!

标签: pythonpandasdatetimedataframe

解决方案


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

推荐阅读