0

我想用一个可以从线性回归方程计算的值填充 DataFrame 中的一些 NaN 值。由于并非 DataFrame 中的所有值都是 NaN,因此我决定对其进行循环。这是数据框:

Country Afghanistan Albania Algeria
1985    NaN         NaN     NaN
1990    NaN         0.645   0.577
...     ...         ...     ...

这是相应地填充 NaN 值的循环

for index, row in df3.iterrows():
    if row.isnull().any():
        row.fillna(value=float(index)*float(coefs[1])+coefs[0])

我想知道为什么我的 DataFrame 在执行循环后保持不变。提前致谢。

4

1 回答 1

0

由于float(index)是数据框的索引,并且您想替换NaN整个数据框中的值,因此您可以执行以下操作:

df3 = df3.apply(lambda col: col.fillna(df3.index.to_series()*float(coefs[1])+coefs[0]))
于 2019-03-11T19:55:29.987 回答