• pandas(九)数据转换


    移除重复数据

    dataframe中常常会出现重复行,DataFrame对象的duplicated方法返回一个布尔型的Series对象,可以表示各行是否是重复行。还有一个drop_duplicates方法,用于返回一个移除了重复行的DataFrame。

    In [36]: data = DataFrame({'k1':['one']*3+['two']*4,"k2":[1,1,2,3,3,4,4]})
    
    In [37]: data
    Out[37]:
        k1  k2
    0  one   1
    1  one   1
    2  one   2
    3  two   3
    4  two   3
    5  two   4
    6  two   4
    #duplicated方法用于判断是否重复行,返回的是一个Series对象
    In [39]: data.duplicated()
    Out[39]:
    0    False
    1     True
    2    False
    3    False
    4     True
    5    False
    6     True
    dtype: bool
    
    #drop_duplicates,剔除重复行,默认检查的是所有列的集合。
    
    In [41]: data.drop_duplicates()
    Out[41]:
        k1  k2
    0  one   1
    2  one   2
    3  two   3
    5  two   4
    #指定部分列进行重复判断和删除
    In [42]: data.duplicated('k1')
    Out[42]:
    0    False
    1     True
    2     True
    3    False
    4     True
    5     True
    6     True
    dtype: bool
    
    In [43]: data.drop_duplicates('k2')
    Out[43]:
        k1  k2
    0  one   1
    2  one   2
    3  two   3
    5  two   4

    是否已经发现,duplicated和drop_duplicates默认保留的都是第一个出现的值组合,传入keep=‘last’,则保留最后一个出现的值。

    keep的选项:

    ‘first’:默认保留第一个出现的值。

    ‘last’:保留最后一个出现的值

    False:使所有的duplicates为True

    In [49]: data.drop_duplicates(keep = 'last')
    Out[49]:
        k1  k2
    1  one   1
    2  one   2
    4  two   3
    6  two   4
    
    In [50]: data.drop_duplicates(keep = False)
    Out[50]:
        k1  k2
    2  one   2

    利用函数或映射进行数据转换

  • 相关阅读:
    c++ 利用new动态的定义二维数组
    golang在linux后台执行的方法
    Linux安装配置go运行环境
    SpringCloud 笔记
    你真的了解 Unicode 和 UTF-8 吗?
    Elasticsearch 系列文章汇总(持续更新...)
    Maven 的依赖范围
    在 centos 上安装 virutalbox
    Java 异常总结
    使用 RabbitMQ 实现异步调用
  • 原文地址:https://www.cnblogs.com/zuoshoushizi/p/8855197.html
Copyright © 2020-2023  润新知