处理nan值并不是那么简单。在进一步处理nan值之前,需要对数据进行分析。有多种方法可以处理这些丢失的值(以下不是详尽的列表):
你可以看一下下面的链接,得到一个更好的主意
另外,你可以看看
official sklearn documentation for imputing missing values
.
更新
:执行标准标量时,可以忽略NaN值,如下所示
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
#Create a dataframe
df = pd.DataFrame({'col1': [0, np.nan, 2, 3, np.nan, 4, 5, np.nan, 6, 7, np.nan]})
#Get the index of null values
null_values = d['col1'].isnull()
#Perform standard scalar on only non-NaN values
df.loc[~null_values, ['col1']] = StandardScaler().fit_transform(df.loc[~null_values, ['col1']])
产量
col1
0 -1.728498
1 NaN
2 -0.832240
3 -0.384111
4 NaN
5 0.064018
6 0.512148
7 NaN
8 0.960277
9 1.408406
10 NaN
然后使用
df.fillna
df.fillna(-1)
出局
col1
0 -1.728498
1 -1.000000
2 -0.832240
3 -0.384111
4 -1.000000
5 0.064018
6 0.512148
7 -1.000000
8 0.960277
9 1.408406
10 -1.000000