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博客


版权声明:本文为wangwangstone原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。