Pandas高级处理--缺失值处理

高级处理

pandas的缺失值类型
应用replace实现数据的替换
应用dropna实现缺失值的删除
应用fillna实现缺失值的填充
应用isnull判断是否有缺失数据NaN

如何处理nan

判断是否为空

pd.isnull(df)-----为空
pd.notnull(df)----不为空

处理方式

1、存在缺失值nan,并且是np.nan
	a:删除存在缺失值的:dropna(axis='rows')
	注:不会修改原数据,需要接收返回值
	b:替换缺失值:fillna(value,inplace=True)
	value:替换成的值
	inplace:True:会修改原数据,False:不替换修改原数据,生成新的对象
2,不是缺失值nan,有默认标记的

电影数据的缺失值处理

电影数据文件获取:
movie = pd.read_csv("./data/....csv")

判断缺失值是否存在

pd.notnull(movie)

存在缺失值nan,并且是np.nan

1,删除
注意:pandas删除缺失值,使用dropna的前提是,缺失值的类型必须是np.nan
movie = movie.dropna()
2,替换缺失值
替换填充平均值、中位数
movie['Revenue (Millions)'].fillna(movie['Revenue (Millions)'].mean(), inplace=True)

不是缺失值nan,有默认标记的

处理思路:
	1,先替换“?”为np.nan
	df.replace(to_replace=,value=)
	to_replace:替换前的值
	value:替换后的值
	wis = df.replace(to_replace='?', value=np.nan)
	2,再进行缺失值的处理
	wis = wis.dropna()

删除某个字段为空的行

1,将特定字段为空的索引获取成列表形式
null_list = data[(data.school_name).isnull()].index.tolist()
2,删除这些列表
data1 = data.drop(labels=null_list, axis=0, inplace=True)

你可能感兴趣的:(Pandas高级处理--缺失值处理)