首先创建具有缺失值NaN(Not A Number)的CSV(comma-separated values)文件:
import pandas as pdfrom io import StringIOcsv_data =
"""A,B,C,D1.0,2.0,3.0,4.05.0,6.0,,8.00.0,11.0,12.0,"""# If you are using Python
2.7, you need# to convert the string to unicode:# csv_data =
unicode(csv_data)df = pd.read_csv(StringIO(csv_data))1
2
3
4
5
6
7
8
9
10
删除含缺失值的样本
具体处理方法:
df.isnull()#是缺失值返回True,否则范围False
df.isnull().sum()#返回每列包含的缺失值的个数
df.dropna()#直接删除含有缺失值的行
df.dropna(axis = 1)#直接删除含有缺失值的列
df.dropna(how = "all")#只删除全是缺失值的行
df.dropna(thresh = 4)#保留至少有4个缺失值的行
df.dropna(subset = ["C"])#删除含有缺失值的特定的列
填充缺失值
数值型数值(Numerical Data)
方法一:fillna()函数
df.fillna(0):用0填充
df.fillna(method="pad"):用前一个数值填充
df.fillna(df2.mean()):用该列均值填充
方法二:Imputer
from sklearn.preprocessing import Imputerimr = Imputer(missing_values="NaN",
strategy="mean", axis=0)#均值填充缺失值imr = imr.fit(df)imputed_data =
imr.transform(df.values)1
2
3
4