【发布时间】:2018-12-02 04:23:12
【问题描述】:
我正在运行 Python 3.5 和 Pandas v 0.19.2。我有一个如下所示的数据框。向前填充缺失值很简单。
import pandas as pd
import numpy as np
d = {'A': np.array([10, np.nan, np.nan, -3, np.nan, 4, np.nan, 0]),
'B': np.array([np.nan, np.nan, 5, -3, np.nan, np.nan, 0, np.nan ])}
df = pd.DataFrame(d)
df_filled = df.fillna(axis='index', method='ffill')
print(df_filled)
Out[8]:
A B
0 10.0 NaN
1 10.0 NaN
2 10.0 5.0
3 -3.0 -3.0
4 -3.0 -3.0
5 4.0 -3.0
6 4.0 0.0
7 0.0 0.0
我的问题是:实现衰减前向填充的最佳方法是什么?我知道pd.ffill() 和pd.fillna() 不支持这个。例如,我所追求的输出如下(与上面的常规 ffill 形成对比),其中每个周期的值都减半:
Out[5]:
A B
0 10.0 NaN
1 5.0 NaN
2 2.5 5.0
3 -3.0 -3.0
4 -1.5 -1.5
5 4.0 -0.75
6 2.0 0.0
7 0.0 0.0
【问题讨论】:
-
嗨,衰变在这里应该如何工作?只有之前值的一半?
-
是的,例如,只是先前值的一半。我添加了常规的
ffill()输出和比较所需的输出。 -
无论如何您都可以要求将其添加为github 的功能。
标签: python pandas missing-data fillna