【发布时间】:2021-11-24 01:55:54
【问题描述】:
原始表:
| Column A |
|---|
| 5 |
| nan |
| nan |
| 15 |
新表:
| Column A |
|---|
| 5 |
| 10 |
| 10 |
| 15 |
【问题讨论】:
-
对于这个具体的例子:
df.fillna(df.mean())
标签: python pandas dataframe data-preprocessing
原始表:
| Column A |
|---|
| 5 |
| nan |
| nan |
| 15 |
新表:
| Column A |
|---|
| 5 |
| 10 |
| 10 |
| 15 |
【问题讨论】:
df.fillna(df.mean())
标签: python pandas dataframe data-preprocessing
一个选项可能如下(使用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 发生在开头或结尾,它也有效。
【讨论】: