pd.read_csv加载数据缺失值处理na_values与数据为空的填充。

指定缺失值的填充值

利用pd.read_csv读取文件加载时,默认会将文件中缺失的数据自动填充为NaN,如果想指定哪些值作为缺失数据来处理,则可以利用里面的na_values参数。

import pandas as pd
data=pd.read_csv("./selectRefer10PerClass0317.txt",sep='\t')

data.head() 

指定字符串'-1'也做为缺失值来处理

import pandas as pd
data=pd.read_csv("./selectRefer10PerClass0317.txt",sep='\t',na_values='-1')

data.head()

数据为空的转换错误

问题: 使用data_df['col2'].astype(int)出现Cannot convert non-finite values (NA or inf) to integer 

原因分析: 查看数据后发现是由于col2列中有些记录是空的,为值Nan,所以没法转换成int。

解决方案:

将此列的空值以指定值去填充 fillna函数。如以100

data_df['col2']=data_df['col2'].fillna(100)

data_df['col2'].astype(int)

data_df=pd.DataFrame([[1,2,3],[None,None,2]])
print(data_df)
# data_df[1].astype(int) # 报错  Cannot convert non-finite values (NA or inf) 
data_df[1]=data_df[1].fillna(100)
data_df[1].astype(int) # 不在报错
print(data_df)

鸣谢与参考:

(20200410已解决)ValueError: Cannot convert non-finite values (NA or inf) to integer_quantLearner的博客-CSDN博客

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值