• 数据的清洗和整理


    本章我们在Linux系统环境下,对数据的清洗和整理做简单的讲解。

    首先我们创建一个数据或者文件,个人信息文件info.csv

    df=pd.read_csv('info.csv')
    print(df)

                    (根据文件路径的不同,自行更改文件读取的路径。)

    1.缺失值的填充

    print(df.fillna(0))

    虽然都填充为0,但这样显然有些不太合适,我们希望在性别添加男或女,年龄和分数希望是一个平均数。

    m=df['age'].mean()
    n=df['score'].mean()
    df1=df.fillna(value={'sex':'','age':m,'score':n})
    print(df1)

    得到了:

    当然,也可以用fillna的参数method=‘ffill’,在列方向上以前一个值作为值赋给NaN。

    print(df.fillna(method='ffill'))

    得到第一行无法改变外:

    2.值的替换replace(to_replace=x)

    a=df[df['age']>24]
    df1=df.replace(to_replace={'age':a},value=26)
    print(df1)

    得到:包括未被赋值的

    3.删除空值的行和列dropna()

    df.dropna()#每行只要有空值,默认axis=0,就将这行删除
    df.dropna(axis=1)#每列只要有空值,整列丢弃
    df.dropna(how='all')# 一行中全部为NaN的,才丢弃该行
    df.dropna(thresh=3)# 每行至少3个非空值才保留

    4.重复值的处理duplicated(),unique(),drop_duplictad()

    print(df.nunique())

    得到各个列的种类个数:

    df.drop_duplicates(['k1'])# 保留k1列中的唯一值的行,默认保留第一行
    df3=df.drop_duplicates('age')
    print(df3)

    输出:

    其中最后一行中,age=24的被删除掉。

    5.排序sort

    print(df.sort_index(axis=1))

    会根据列名进行排序,sort_index()默认的时axis=0。

     对值进行排序:

    print(df.sort_values(by=['age']))

    得到:(空值默认排到最后)


    排名次:
    print(df.rank())
    
    

    得到:(默认axis=0)


    视图展示:
    m=df['age'].mean()
    n=df['score'].mean()
    df1=df.fillna(value={'sex':'','age':m,'score':n})
    df1.boxplot()
    plt.show()
    
    

    视图:

     

     

  • 相关阅读:
    Mybatis SQL转义字符与like 查询
    如何调试MFC中的内存泄漏
    GIT 和 SVN 之间的五个基本区别
    VS Feature Pack学习之CMFCMenuBar自定义菜单字体
    NetBeans IDE 7.0 Milestone 2 Available for Download
    NetBeans 时事通讯(刊号 # 120 Oct 14, 2010)
    NetBeans 时事通讯(刊号 # 121 Oct 18, 2010)
    Hibernate Core 3.6.0.Final 来了
    NetBeans IDE 7.0 Milestone 2 Available for Download
    针对PostMessage和SendMessage区别的一个试验
  • 原文地址:https://www.cnblogs.com/qianshuixianyu/p/9263820.html
Copyright © 2020-2023  润新知