繁体   English   中英

如果为 NaN,则滚动数据框 pandas 并更新值

[英]Rolling over dataframe pandas and update values if NaN

我想在我的数据框上使用滚动功能。 这是我的系列:

指数 日期 ID value_dex
90256 2021-05-10 01:45:20 101904285 7.6
90257 2021-05-10 01:45:20 101904285 7.6
90258 2021-05-10 02:00:00 101904285
90260 2021-05-10 02:00:44 101904285 6.9
90261 2021-05-10 02:00:44 101904285

我想要的是 :

指数 日期 ID value_dex
90256 2021-05-10 01:45:20 101904285 7.6
90257 2021-05-10 01:45:20 101904285 7.6
90258 2021-05-10 02:00:00 101904285 7.6
90260 2021-05-10 02:00:44 101904285 6.9
90261 2021-05-10 02:00:44 101904285 6.9

如果 NaN,我想将列中的值拖动超过 30 分钟。 但是,我还希望在 30 分钟范围内遇到新值时停止拖动(在本例中,我们将新值拖动超过 30 分钟)。

我试过了:


ffill = lambda x: pd.DataFrame(x.rolling('30T', on='Date')[y].max(),
                                       index=x.index)
        
        data[y] = data.groupby('ID', as_index=False).apply(ffill)

但是在滚动过程中有新值时它不起作用。 您有任何解决方案来解决我的问题吗? 也许是现有的功能? 非常感谢 !

我相信您可以尝试将其用作 NaN 值的填充物:

data.fillna(method='ffill')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM