原始表:
A列 |
---|
5 |
nan |
nan |
15 |
一个选项可能如下(使用fillna
两次(使用选项ffill
和bfill
(,然后对它们取平均值(:
import pandas as pd
import numpy as np
df = pd.DataFrame({'x': [np.nan, 5, np.nan, np.nan, 15]})
filled_series = [df['x'].fillna(method=m) for m in ('ffill', 'bfill')]
print(pd.concat(filled_series, axis=1).mean(axis=1))
# 0 5.0
# 1 5.0
# 2 10.0
# 3 10.0
# 4 15.0
正如您所看到的,即使nan
发生在开头或结尾,它也能工作。