将自定义函数插值到序列

2024-04-24 19:24:49 发布

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

这是一个数据框:

2005-01-24    117.0
2005-02-22      NaN
2005-03-21      NaN
2005-04-18    114.0
2005-05-23      NaN
2005-06-20      NaN
2005-07-18    122.0

预期的输出是用上下两个值的平均值填充NaN值,如下所示:

2005-01-24    117.0
2005-02-22    115.5    (117-114 / 2)
2005-03-21    115.5
2005-04-18    114.0
2005-05-23    118.0    (122-114 / 2)
2005-07-18    122.0

据我所知测向插值()不允许传递函数?我们还尝试了.rolling(2).mean()和重新索引,但没有成功。你知道吗


Tags: 数据传递函数nanmean平均值插值rolling
1条回答
网友
1楼 · 发布于 2024-04-24 19:24:49

假设您的数据是s系列:

import pandas as pd
import numpy as np

s = pd.Series({'2005-01-24': 117.0,
 '2005-02-22': np.nan,
 '2005-03-21': np.nan,
 '2005-04-18': 114.0,
 '2005-05-23': np.nan,
 '2005-06-20': np.nan,
 '2005-07-18': 122.0})

您可以使用ffill和bfill来查找上下界,然后取平均值。你知道吗

s.ffill().add(s.bfill()).div(2)
Out[71]: 
2005-01-24    117.0
2005-02-22    115.5
2005-03-21    115.5
2005-04-18    114.0
2005-05-23    118.0
2005-06-20    118.0
2005-07-18    122.0
dtype: float64

相关问题 更多 >