• 数据分析学习笔记4-----处理缺失数据


    处理缺失数据

    对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。我们称其为哨兵值。

    滤除缺失数据

    过滤掉缺失数据的办法有很多种。你可以通过pandas.isnull或布尔索引的手工方法,但dropna可能会更实用一些。对于一个Series,dropna返回一个仅含非空数据和索引值的Series:

    In [15]: from numpy import nan as NA
    
    In [16]: data = pd.Series([1, NA, 3.5, NA, 7])
    
    In [17]: data.dropna()
    Out[17]: 
    0    1.0
    2    3.5
    4    7.0
    dtype: float64
    

    填充缺失数据

    通过一个常数调用fillna就会将缺失值替换为那个常数值:

    In [27]: df = pd.DataFrame(np.random.randn(7, 3))
    
    In [28]: df.iloc[:4, 1] = NA
    
    In [29]: df.iloc[:2, 2] = NA
    
    In [30]: df
    Out[30]: 
              0         1         2
    0 -0.204708       NaN       NaN
    1 -0.555730       NaN       NaN
    2  0.092908       NaN  0.769023
    3  1.246435       NaN -1.296221
    4  0.274992  0.228913  1.352917
    5  0.886429 -2.001637 -0.371843
    6  1.669025 -0.438570 -0.539741
    In [33]: df.fillna(0)
    Out[33]: 
              0         1         2
    0 -0.204708  0.000000  0.000000
    1 -0.555730  0.000000  0.000000
    2  0.092908  0.000000  0.769023
    3  1.246435  0.000000 -1.296221
    4  0.274992  0.228913  1.352917
    5  0.886429 -2.001637 -0.371843
    6  1.669025 -0.438570 -0.539741
    

    通过一个字典调用fillna,就可以实现对不同的列填充不同的值

    In [34]: df.fillna({1: 0.5, 2: 0})
    Out[34]: 
              0         1         2
    0 -0.204708  0.500000  0.000000
    1 -0.555730  0.500000  0.000000
    2  0.092908  0.500000  0.769023
    3  1.246435  0.500000 -1.296221
    4  0.274992  0.228913  1.352917
    5  0.886429 -2.001637 -0.371843
    6  1.669025 -0.438570 -0.539741
    

    数据转换

    移除重复数据

    In [45]: data = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],
       ....:                      'k2': [1, 1, 2, 3, 3, 4, 4]})
    
    In [46]: data
    Out[46]: 
        k1  k2
    0  one   1
    1  two   1
    2  one   2
    3  two   3
    4  one   3
    5  two   4
    6  two   4
    

    DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行(前面出现过的行)

    In [47]: data.duplicated()
    Out[47]: 
    0    False
    1    False
    2    False
    3    False
    4    False
    5    False
    6     True
    dtype: bool
    

     

  • 相关阅读:
    Tomcat建立多个应用(Web Server),多个主机,多个站点的方法
    Spring 注解bean默认名称规则
    spring+springMVC,声明式事务失效,原因以及解决办法
    Spring事务失效的原因
    MySQL 对于千万级的大表要怎么优化?
    前端开发利器: Bootstrap + AngularJS
    scrapy爬取段子
    scrapy安装
    xpath和CSS选择器
    pycharm远程登录mysql
  • 原文地址:https://www.cnblogs.com/helloluo/p/9751609.html
Copyright © 2020-2023  润新知