如何替换dataframe中的nan?

在数据清洗中,常需要处理DataFrame中的缺失值(nan)。本文介绍了使用fillna()、applymap()和where()三种方法来替换DataFrame中的nan,并通过测试数据进行分析。fillna()需要指定填充值,但object类型可能无效;applymap()仅对字符串类型生效;where()允许自定义条件,但数据类型处理需谨慎。
摘要由CSDN通过智能技术生成

在做数据清洗等工作时,必不可少的环节就是缺失值处理。在采用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      
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值