Python缺失值填充理解。

设有DataFrame A和DataFrame B,

rng = np.random.RandomState(42)
A = pd.DataFrame(rng.randint(0, 20, (2, 2)),
                 columns=list('AB'))

print(A)

数据框A返回为:

A B
0 6 19
1 14 10
B = pd.DataFrame(rng.randint(0, 10, (3, 3)),
                              columns=list('BAC'))
print(B)

数据框B返回为:

B A C
0 7 4 6
1 9 2 6
2 7 4 3

现在要算两个数据框相加,即:A + B,但是两个数据框的维度不一样dim(A) = (2, 2), dim(B) = (3,3),直接相加会出现缺失值。

A + B

返回结果为:

A B c
0 10.0 26.0 NaN
1 16.0 19.0 NaN
2 NaN NaN NaN

缺失值填充步骤

用 A 中所有值的均值来填充缺失值

A.stack().mean()

Out: 12.25

设置fill_value参数

fill_value = A.stack().mean()

这里相当于对数据框A进行均值填充形成了一个与数据框B维度一致的数据框Á

A B C
0 6 19 12.25
1 14 10 12.25
2 12.25 12.25 12.25

进行相加

A.add(B, fill_value = A.stack().mean())

返回结果为:

A B C
0 10.00 26.00 18.25
1 16.00 19.00 18.25
2 16.25 19.25 15.25

理解:缺失值填充相当于构造一个数据框Á,然后用数据框Á + 数据框B。