zoukankan      html  css  js  c++  java
  • 像Excel一样使用python进行数据分析(3)

    像Excel一样使用python进行数据分析(1)

    像Excel一样使用python进行数据分析(2)

    7,数据汇总

    第七部分是对数据进行分类汇总,Excel中使用分类汇总和数据透视可以按特定维度对数据进行汇总,python中使用的主要函数是groupby和pivot_table。下面分别介绍这两个函数的使用方法。

    分类汇总

    Excel的数据目录下提供了“分类汇总”功能,可以按指定的字段和汇总方式对数据表进行汇总。Python中通过Groupby函数完成相应的操作,并可以支持多级分类汇总。


    Groupby是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就可以,也可以同时制定多个列名称,groupby按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。

    # 对所有列进行计数汇总
    df_inner.groupby('city').count()
     
    像Excel一样使用python进行数据分析(3)-数据分析网

    可以在groupby中设置列名称来对特定的列进行汇总。下面的代码中按城市对id字段进行汇总计数。

     
    #对特定的ID列进行计数汇总
    df_inner.groupby('city')['id'].count()
    city
    beijing 2
    guangzhou 1
    shanghai 2
    shenzhen 1
    Name: id, dtype: int64

    在前面的基础上增加第二个列名称,分布对city和size两个字段进行计数汇总。

    #对两个字段进行汇总计数
    df_inner.groupby(['city','size'])['id'].count()
    city size
    beijing A 1
    F 1
    guangzhou A 1
    shanghai A 1
    B 1
    shenzhen C 1
    Name: id, dtype: int64
     

    除了计数和求和外,还可以对汇总后的数据同时按多个维度进行计算,下面的代码中按城市对price字段进行汇总,并分别计算price的数量,总金额和平均金额。

    #对city字段进行汇总并计算price的合计和均值。
    df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])
     
    像Excel一样使用python进行数据分析(3)-数据分析网

    数据透视

    Excel中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总。Python中也提供了数据透视表功能。通过pivot_table函数实现同样的效果。

    数据透视表也是常用的一种数据分类汇总方式,并且功能上比groupby要强大一些。下面的代码中设定city为行字段,size为列字段,price为值字段。分别计算price的数量和金额并且按行与列进行汇总。

    #数据透视表
    pd.pivot_table(df_inner,index=["city"],values=["price"],columns=["size"],aggfunc=[len,np.sum],fill_value=0,margins=True)
     
    像Excel一样使用python进行数据分析(3)-数据分析网

    8,数据统计

    第九部分为数据统计,这里主要介绍数据采样,标准差,协方差和相关系数的使用方法。

    数据采样

    Excel的数据分析功能中提供了数据抽样的功能,如下图所示。Python通过sample函数完成数据采样。

     

    Sample是进行数据采样的函数,设置n的数量就可以了。函数自动返回参与的结果。

    #简单的数据采样
    df_inner.sample(n=3)
     
     

    Weights参数是采样的权重,通过设置不同的权重可以更改采样的结果,权重高的数据将更有希望被选中。这里手动设置6条数据的权重值。将前面4个设置为0,后面两个分别设置为0.5。

    #手动设置采样权重
    weights = [0, 0, 0, 0, 0.5, 0.5]
    df_inner.sample(n=2, weights=weights)

    从采样结果中可以看出,后两条权重高的数据被选中。


    Sample函数中还有一个参数replace,用来设置采样后是否放回。

    #采样后不放回
    df_inner.sample(n=6, replace=False)
     
    #采样后放回
    df_inner.sample(n=6, replace=True)

    描述统计

    Excel中的数据分析中提供了描述统计的功能。Python中可以通过Describe对数据进行描述统计。

     

    Describe函数是进行描述统计的函数,自动生成数据的数量,均值,标准差等数据。下面的代码中对数据表进行描述统计,并使用round函数设置结果显示的小数位。并对结果数据进行转置。

    #数据表描述性统计
    df_inner.describe().round(2).T
     

    像Excel一样使用python进行数据分析(3)-数据分析网
    标准差
    Python中的Std函数用来接算特定数据列的标准差。

    #标准差
    df_inner['price'].std()
    1523.3516556155596
     

    协方差
    Excel中的数据分析功能中提供协方差的计算,python中通过cov函数计算两个字段或数据表中各字段间的协方差。

     

    Cov函数用来计算两个字段间的协方差,可以只对特定字段进行计算,也可以对整个数据表中各个列之间进行计算。

    #两个字段间的协方差
    df_inner['price'].cov(df_inner['m-point'])
    17263.200000000001
    #数据表中所有字段间的协方差
    df_inner.cov()
     
     
    像Excel一样使用python进行数据分析(3)-数据分析网

    相关分析
    Excel的数据分析功能中提供了相关系数的计算功能,python中则通过corr函数完成相关分析的操作,并返回相关系数。

     

    Corr函数用来计算数据间的相关系数,可以单独对特定数据进行计算,也可以对整个数据表中各个列进行计算。相关系数在-1到1之间,接近1为正相关,接近-1为负相关,0为不相关。

    #相关性分析
    df_inner['price'].corr(df_inner['m-point'])
    0.77466555617085264
    #数据表相关性分析
    df_inner.corr()
     
     
    像Excel一样使用python进行数据分析(3)-数据分析网

    9,数据输出

    第九部分是数据输出,处理和分析完的数据可以输出为xlsx格式和csv格式。

    写入excel

    #输出到excel格式
    df_inner.to_excel('excel_to_python.xlsx', sheet_name='bluewhale_cc')

    写入csv

    #输出到CSV格式
    df_inner.to_csv('excel_to_python.csv')
     

    在数据处理的过程中,大部分基础工作是重复和机械的,对于这部分基础工作,我们可以使用自定义函数进行自动化。以下简单介绍对数据表信息获取自动化处理。

    #创建数据表
    df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006],
    "date":pd.date_range('20130102', periods=6),
    "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai','BEIJING '],
    "age":[23,44,54,32,34,32],
    "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
    "price":[1200,np.nan,2133,5433,np.nan,4432]},
    columns =['id','date','city','category','age','price'])
    #创建自定义函数
    def table_info(x):
        shape=x.shape
        types=x.dtypes
        colums=x.columns
        print("数据维度(行,列):
    ",shape)
        print("数据格式:
    ",types)
        print("列名称:
    ",colums)
    #调用自定义函数获取df数据表信息并输出结果
    table_info(df)
     
    数据维度(行,列):
    (6, 6)
    数据格式:
    id int64
    date datetime64[ns]
    city object
    category object
    age int64
    price float64
    dtype: object
    列名称:
    Index(['id', 'date', 'city', 'category', 'age', 'price'], dtype='object')
     
     
     

    本篇是《像Excel一样使用python进行数据分析》系列文章的最后一篇。在这个系列中我们列举了python中36个简单的函数来实现excel中最常见的一些功能。感兴趣的朋友可以下载并阅读pandas官方文档,里面有更详细的函数说明。

  • 相关阅读:
    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
    jQuery UI组件库Kendo UI使用技巧小分享
    Kendo UI ListView模板功能,让Web开发更轻松
    UI组件套包DevExpress ASP.NET Core v20.2新版亮点:全新的查询生成器
    Devexpress WinForms最新版开发.NET环境配置Visual Studo和SQL Server对应版本
    全新的桌面应用数据可视化呈现方式,Sankey Diagram控件你了解多少?
    java中的递归方法
    连接数据库查询 将查询结果写入exce文件中
    java连接mysql数据查询数据
  • 原文地址:https://www.cnblogs.com/xitingxie/p/8412909.html
Copyright © 2011-2022 走看看