python - 将自定义函数插入 pandas 系列

标签 python pandas interpolation

这是一个 df:

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

据我所知 df.interpolate() 不允许您传递函数?还尝试尝试 .rolling(2).mean() 和重新索引但没有成功。

最佳答案

假设您的数据位于 Series 中:

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

关于python - 将自定义函数插入 pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020522/

相关文章:

python - Mac + Anaconda 上的 Qt 设计器应用程序在哪里?

python - 如何在 python 包装中使用 unicode 字符串为 c++ 类使用 cython?

python - 如何识别与 Pandas/Python 中的特定动态值相关的文本

matlab - 以可变采样率平均周期性数据

python - 在已知 X 和 Y 坐标(各 1 列)处使用 Z 值(1 列)平滑 2D 插值图

OpenGL 颜色插值

python - 在 Python 连接期间与 MySQL 服务器失去连接

python - tkinter 在 MacOS 上始终使窗口保持在顶部

python - 以最快的方式将 one-hot 编码的特征保存到 Pandas DataFrame 中

python - Pandas :用字典的字典中的值填充 NaN 值