美文网首页小白学python
数据分析 | 简简单单,数据处理

数据分析 | 简简单单,数据处理

作者: Demafic | 来源:发表于2019-05-17 11:58 被阅读0次

    0 导入数据

    pd.read_csv('Iris.csv')
    pd.read_csv('dataset.csv')
    

    如果只是想要csv中的一部分那么可以指定参数usecols,获取指定行、列。

    1 了解数据

    首先罗列一些反应数据集基本信息的函数:

    • head(x)
      显示数据的前x行。

    • tail(x)
      显示数据集的最后x行,但顺序依然不变。

    • shape()
      得到数据集的行数和列数

    • columns()
      得到列名的,输出列表。

    • info()
      得到关系数据集的信息,如各列的数量、类型、空值数量等。

    • describes()
      对数据集做一些基本的计算,如平均值,最大、小值等。

    • value_counts()
      查看Series对象唯一值的个数。

    这里,大家可以回复 Iris 获取Iris.csv进行实例操作。

    2 数据清洗

    当我们拿到一个数据后,数据不可能是规规整整,等着被分析的,一般来说会有如下几种情况:

    格式规范

    数据缺失

    数据冗余

    我们以从git hub上下下来的dataset.csv作为练习对象。

    格式规范

    有时数据集的列名过于繁杂,不易书写和理解,可以用函数ewname()对列名进行更改。

    比如:

    new_name = {'Full Name':'Full_Name',Data of Birth':'Data_of_Birth'}
    df.rename(columns=new_name)
    

    同时可以重新设置索引;

    df.set_index('Full_Name')
    

    当然,这里就不需要啦。

    对于字符串的规范同样重要,常用的方法如下:

    lower()

    upper()

    capitalize()

    replace()

    strip()

    split()

    get()

    contains()

    lower()upper()能将大写变为小写或是小写变成大写。

    df['Quote'] = df['Quote'].str.lower()
    

    replace()则能替换掉特定字符,可将收入里的$替换:

    df['Income'] = df['Income'].str.replace('$','')
    

    split()则以设定的字符作为分隔符,输出分割后的列表,我们对Full_Name以空格为分隔符,进行分隔:

    df['Name'] = df['Full_Name'].str.split(' ')
    

    然后通过get()获取列表中任意位置的字符:

    df['First_Name'] = df['Name'].str.get(0)
    df['last_Name'] = df['Name'].str.get(1)
    

    strip()则可以去除字符串中的空格、\t\n。

    contains()则可判断是否存在某一字符:

    df[df['Phone'].str.contains('610|170')]
    #字符内是否存在610后者170
    

    match()则判断字符的开头是否有某一字符:

    df['Phone'].str.match('610|170')
    

    更改数值格式可以通过astype()实现:

    df['Income'] = df['Income'].astype(int)
    

    数据缺失

    可以通过info()看到在country中有两个空值,因此:

    df.dropna(subset=['Country'])
    

    其中,由参数subset指定区域,选定该区域上的空值将整行删除。

    在上面的replace()操作后,某些就成了空值,可以选择直接删除,也可以选择填入平均值。但是可以看到虽然空格内没有数值,但其实不算NAN,因此需要一步转化

    p = df[df['Income']==''].index.tolist()
    df = df.drop(p)
    

    现在,我们来检验以下,是否还有空值:

    df.isnull()
    

    函数isnull()则将数据集中为空的值显示为True.

    当然,有时候是可以对缺失值进行填补,比如填上平均值,中位数等,这时候可以使用函数fillna()

    df['Income'] = df['Income'].str.replace('$','')
    df['Income'] = df['Income'].str.replace(',','')
    df['Income'] = pd.to_numeric(df['Income'])
    income_mean = df['Income'].mean()
    df['Income'] = df['Income'].fillna(income_mean)
    

    数据冗余

    删除重复数据:

    df = df.drop_duplicates()
    

    3 分析数据到底分析什么

    这部分并没有深入涉及,因此放上几个资源,大家一起学习:

    欢迎关注,共同成长!


    foronepiece.JPG

    相关文章

      网友评论

        本文标题:数据分析 | 简简单单,数据处理

        本文链接:https://www.haomeiwen.com/subject/gjvnaqtx.html