pandas只在缺失的时间窗在delta limi之间时才插值时间序列

2024-04-27 05:21:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用pandas interpolate函数来填充pandas系列的缺失值,其中索引是datetime。在

有没有一种方法只对某些极限之间的间隙应用插值函数?假设我们只想在短于日期时间。时间增量(分钟=A)且长于日期时间。时间增量(分钟=B)。在

假设A=30,B=15,我们有这个时间序列

2018-07-01 12:00:00    1
2018-07-01 12:05:00    nan
2018-07-01 12:10:00    3
2018-07-01 12:15:00    nan
2018-07-01 12:20:00    nan
2018-07-01 12:25:00    nan
2018-07-01 12:30:00    7
2018-07-01 12:35:00    8
2018-07-01 12:40:00    nan
2018-07-01 12:45:00    nan
2018-07-01 12:50:00    nan
2018-07-01 12:55:00    nan
2018-07-01 13:00:00    nan
2018-07-01 13:05:00    14

,我想

^{pr2}$

现在,我只找到了一些方法来过滤它们行数的差距。。。在

谢谢你!在


Tags: 方法函数pandasdatetime时间序列nan增量
1条回答
网友
1楼 · 发布于 2024-04-27 05:21:35

我不确定这在更一般的情况下如何工作,但你可以试试这个:

import pandas as pd
import numpy as np
df = pd.DataFrame({"date": pd.date_range(start="2018-07-01 12:00:00",
                                         end="2018-07-01 13:05:00",
                                         freq="5min")})
df["value"] = np.arange(1, len(df)+1)
df["value"] = np.where(df.index.isin([1, 3, 4, 5, 8, 9, 10, 11, 12]),
                       np.nan,
                       df["value"])

# Interpolation
df["value"] = np.where((df.date.dt.minute >=15) & (df.date.dt.minute <=30),
                       df.value.interpolate(),
                       df.value)

相关问题 更多 >