• pandas包 —— drop()、sort_values()、drop_duplicates()


    一、drop() 函数

    当你要删除某一行或者某一列时,用drop函数,它不改变原有的df中的数据,而是返回另一个dataframe来存放删除后的数据。

    1.命令:  df.drop()

      删除行:df.drop('apps')    #drop函数的参数默认 axis=0

      删除列:df.dorp('col', axis=1)  #删除列要加axis=1,默认是删除行的

    2.

    temp = deviceid_packages.drop('apps', axis=1)
    temp1 = deviceid_packages.drop(['apps'], axis=1)
    

      

    二、sort_values()函数

    pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。

    1.sort_values()函数的具体参数

       Usage:

    DataFrame.sort_values(by=‘##’,axis=0,ascending=True, inplace=False, na_position=‘last’)

    2.参数说明:

    参数说明
    by 指定列名(axis=0或’index’)或索引值(axis=1或’columns’)
    axis 若axis=0或’index’,则按照指定列中数据大小排序;若axis=1或’columns’,则按照指定索引中数据大小排序,默认axis=0
    ascending 是否按指定列的数组升序排列,默认为True,即升序排列
    inplace 是否用排序后的数据集替换原来的数据,默认为False,即不替换
    na_position {‘first’,‘last’},设定缺失值的显示位置

    #注意sort_values()函数与drop()函数的参数axis表示的相反

    三、drop_duplicates()函数

    参考:https://www.cnblogs.com/xxswkl/p/10989306.html

    dataframe删除某一列的重复元素,默认只留下第一次出现的

    inplace参数设置为true时直接在原数据上修改,为False时,生成副本.

    #注意:所有函数中inplace一旦设置为True,它整体已经就是None.想要再跟函数只能再写一行.

    且此时在前面也不能赋值,赋值也是None.因为设置为True时,整体是None,设置为False时,整体是一个引用,可以赋给其它变量.

    1.

    a1 = pd.DataFrame({
                        'a': [1, 1, 3, 2,],
                        'b': [1, 1, 6, 4,],
                        'c': [1, 1, 3, 9,]
                      })
    print(a1)
    #    a  b  c
    # 0  1  1  1
    # 1  1  1  1
    # 2  3  6  3
    # 3  2  4  9
    
    a1.drop_duplicates(inplace=True)
    print(a1)
    #    a  b  c
    # 0  1  1  1
    # 2  3  6  3
    # 3  2  4  9
    
    # 这里inplace为假,整体实际上是一个引用,所以可以直接输出.
    print(a1.drop_duplicates(['a','b'], keep='first',inplace=False)) #删除a,b两列重复的行,并且保留首次出现的哪一行
    #    a  b  c
    # 0  1  1  1
    # 2  3  6  3
    # 3  2  4  9
    
    # 注意这里因为inplace为真,直接在原数据上修改,直接输出是空,因为它并不是一个引用,a1才是引用.
    print(a1.drop_duplicates(['a','b'], keep='first',inplace=True)) 
    # None 

    2.

     想要留下去掉的重复行,可以先删除重复行后,保存索引,再删除索引.

    import pandas as pd
    import numpy as np
    import re
    
    df = pd.DataFrame({'a': [1,1,3,4,3],
                       'b': [1,1,3,4,3],
                       'c': [1,1,3,4,3]})
    print('原始数据:
    ',df)
    # 原始数据:
    #     a  b  c
    # 0  1  1  1
    # 1  1  1  1
    # 2  3  3  3
    # 3  4  4  4
    # 4  3  3  3
    
    print('去掉重复行后:
    ', df.drop_duplicates())
    # 去掉重复行后:
    #     a  b  c
    # 0  1  1  1
    # 2  3  3  3
    # 3  4  4  4
    
    drop_index = df.drop_duplicates().index.tolist()
    print('去掉的重复行是:
    ',df.drop(drop_index))
    # 去掉的重复行是:
    #     a  b  c
    # 1  1  1  1
    # 4  3  3  3
    
    #参数inplace=默认为假,数据框df还是原来的没有改变
    print(df)
    #     a  b  c
    # 0  1  1  1
    # 1  1  1  1
    # 2  3  3  3
    # 3  4  4  4
    # 4  3  3  3
    

      

  • 相关阅读:
    POJ1741
    聪聪可可
    [USACO07NOV]Cow Relays
    Android 程序的反破解技术
    在Android上实现SSL握手(客户端需要密钥和证书),实现服务器和客户端之间Socket交互
    vmware中的bridge、nat、host-only的区别
    史上最易懂的Android jni开发资料--NDK环境搭建
    使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决
    Android apk反编译基础(apktoos)图文教程
    Smali文件语法解析
  • 原文地址:https://www.cnblogs.com/jiaxinwei/p/11973002.html
Copyright © 2020-2023  润新知