在做数据清洗等工作时,必不可少的环节就是缺失值处理。在采用pandas读取或处理数据时,dataframe的缺失值默认是用nan填充的。但大多数情况下,我们需要的是None或者Null值而不是nan.所以,如何替换dataframe中的nan呢?
替换nan的方法有很多,本文总结了三个方法。dataframe.fillna()方法,dataframe.applymap()以及dataframe.where()方法。本文通过测试数据对每个方法进行分析。最终选择使用哪个方法可结合本文的分析,根据真实场景进行取舍。
1.准备测试数据
types = {'name': str, 'cost': float, 'age': float, 'phone': str}
# 注意age不能指定为int类型,
# 指定类型读取数据
data = pd.read_excel('../../test.xlsx', sheet_name='Sheet1', header=0, dtype=types)
#查看数据
print(data)
# 查看每列的数据类型
print(data.dtypes)
注意:age列中含有缺失值,所以不能指定为int型,否则会报错:ValueError: Unable to convert column age to type <class 'int'>
输出结果:
name