Iterrows не соблюдая филлну - PullRequest
0 голосов
/ 11 марта 2019

Я хочу заполнить некоторые значения NaN из DataFrame значением, которое я могу вычислить из уравнения линейной регрессии.Поскольку не все значения из DataFrame являются NaN, я решил зациклить его.Это DataFrame:

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 остается тем же после выполнения цикла.Заранее спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

Поскольку float(index) является индексом вашего фрейма данных, и вы хотите заменить NaN значения во всем фрейме данных, вы можете сделать что-то вроде:

df3 = df3.apply(lambda col: col.fillna(df3.index.to_series()*float(coefs[1])+coefs[0]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...