Замена значений NaN на среднее значение столбца не меняет pandas значений NaN в кадре - PullRequest
1 голос
/ 24 апреля 2020

Я ищу эту топи c в нескольких сообщениях, и я испробовал все возможные решения, которые дают люди, но хотя все еще не работает для меня.

Я пытаюсь заменить каждое значение NaN из каждого столбец, со средним значением столбца. Другими словами:

    A   B
 1: 2   3
 2: 2   1
 3: NaN 4

Column A mean = 1.3

    A   B
 1: 2   3
 2: 2   1
 3: 1.3 4 

Я пробовал:

df.fillna(value=0, axis=1, inplace=True)

и работает нормально, но как только я попытался:

df.fillna(value=df.mean(axis=1), inplace=True)

Не знаю никаких изменений нет, значение NaN все еще там.

Вот код:

# Drop 'station' column
del final_df['station']
# Replace NaN with column mean value
final_df.fillna(value=final_df.mean(axis=1), inplace=True)
final_df.head()

output

1 Ответ

1 голос
/ 24 апреля 2020

Я думаю, вам нужно DataFrame.fillna средними значениями на столбцы средними значениями на столбцы (ось = 0), что является значением по умолчанию, поэтому следует опустить:

df = df.fillna(value=df.mean())
print (df)
      A  B
1:  2.0  3
2:  2.0  1
3:  2.0  4

I думаю, что inplace не является хорошей практикой, проверьте это и это .

...