分享

Python处理缺失值

 宋娃娃姓宋 2018-03-12

首先创建具有缺失值NaN(Not A Number)的CSV(comma-separated values)文件:

import pandas as pd
from io import StringIO
csv_data = '''A,B,C,D
1.0,2.0,3.0,4.0
5.0,6.0,,8.0
0.0,11.0,12.0,'''
# If you are using Python 2.7, you need
# to convert the string to unicode:
# csv_data = unicode(csv_data)
df = pd.read_csv(StringIO(csv_data))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

删除含缺失值的样本

具体处理方法:

  • df.isnull()#是缺失值返回True,否则范围False
  • df.isnull().sum()#返回每列包含的缺失值的个数
  • df.dropna()#直接删除含有缺失值的行
  • df.dropna(axis = 1)#直接删除含有缺失值的列
  • df.dropna(how = 'all')#只删除全是缺失值的行
  • df.dropna(thresh = 4)#保留至少有4个缺失值的行
  • df.dropna(subset = ['C'])#删除含有缺失值的特定的列

填充缺失值

数值型数值(Numerical Data)

方法一:fillna()函数

  • df.fillna(0):用0填充
  • df.fillna(method='pad'):用前一个数值填充
  • df.fillna(df2.mean()):用该列均值填充

方法二:Imputer

from sklearn.preprocessing import Imputer
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)#均值填充缺失值
imr = imr.fit(df)
imputed_data = imr.transform(df.values)
  • 1
  • 2
  • 3
  • 4

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多