Использование fillna для замены отсутствующих данных - PullRequest
0 голосов
/ 25 ноября 2018

Когда я пытаюсь использовать fillna для замены NaN в столбцах средними значениями, NaN изменяется с float64 на object, показывая:

связанный метод Series.mean 0 NaN\ n1

Вот код:

mean = df['texture_mean'].mean
df['texture_mean'] = df['texture_mean'].fillna(mean)`

1 Ответ

0 голосов
/ 25 ноября 2018

Вы не можете использовать mean = df['texture_mean'].mean.Вот в чем проблема.Следующий код будет работать -

df=pd.DataFrame({'texture_mean':[2,4,None,6,1,None],'A':[1,2,3,4,5,None]}) # Example 
df
     A  texture_mean
0  1.0           2.0
1  2.0           4.0
2  3.0           NaN
3  4.0           6.0
4  5.0           1.0
5  NaN           NaN

df['texture_mean']=df['texture_mean'].fillna(df['texture_mean'].mean())

df
     A  texture_mean
0  1.0          2.00
1  2.0          4.00
2  3.0          3.25
3  4.0          6.00
4  5.0          1.00
5  NaN          3.25

Если вы хотите заменить все NaN соответствующими значениями этого столбца во всех столбцах, просто сделайте это -

df=df.fillna(df.mean())
df
     A  texture_mean
0  1.0          2.00
1  2.0          4.00
2  3.0          3.25
3  4.0          6.00
4  5.0          1.00
5  3.0          3.25

ПустьЯ знаю, если это то, что вы хотите.

...