gender id m-point pay
0 male 1001 10 Y
1 female 1002 12 N
2 male 1003 20 Y
3 female 1004 40 Y
4 male 1005 40 N
5 female 1006 40 Y
6 male 1007 30 N
7 female 1008 20 Y
id 1004
date 2013-01-05 00:00:00
city shenzhen
category_x 110-C
age 32
price 5433
gender female
m-point 40
pay Y
group high
category_y 110
size C
Name: 3, dtype: object
id city category_x age price gender m-point pay group \
date
2013-01-02 1001 beijing 100-A 23 1200 male 10 Y low
2013-01-03 1002 shanghai 100-B 44 3299 female 12 N high
2013-01-04 1003 guangzhou 110-A 54 2133 male 20 Y low
2013-01-05 1004 shenzhen 110-C 32 5433 female 40 Y high
2013-01-06 1005 shanghai 210-A 34 3299 male 40 N high
2013-01-07 1006 beijing 130-F 32 4432 female 40 Y high
category_y size
date
2013-01-02 100 A
2013-01-03 100 B
2013-01-04 110 A
2013-01-05 110 C
2013-01-06 210 A
2013-01-07 130 F
id city category_x age price gender m-point pay group \
date
2013-01-02 1001 beijing 100-A 23 1200 male 10 Y low
2013-01-03 1002 shanghai 100-B 44 3299 female 12 N high
2013-01-04 1003 guangzhou 110-A 54 2133 male 20 Y low
2013-01-05 1004 shenzhen 110-C 32 5433 female 40 Y high
2013-01-06 1005 shanghai 210-A 34 3299 male 40 N high
2013-01-07 1006 beijing 130-F 32 4432 female 40 Y high
category_y size
date
2013-01-02 100 A
2013-01-03 100 B
2013-01-04 110 A
2013-01-05 110 C
2013-01-06 210 A
2013-01-07 130 F
利用 python 进行数据分析
目的:本教程主要是数据分析工作者利用 python 进行数据读取、清理、转换、合并、重塑的方法。
受众:数据分析师 数据产品经理
Author:数据寿司
Email:datasushi@gmail.com
1、数据的合并 Merge
使用merge函数对两个数据表进行合并,合并的方式为inner,将两个数据表中共有的数据匹配到一起生成新的数据表。并命名为df_inner。
2 、数据的排序 sort_values
3、数据的索引
用来将数据表按索引列的值进行排序
4、数据的分组
5、数据分列
对 category 字段的值依次进行分列,并创建数据表,索引值为 df_inner 的索引列,列名称为 category 和size
这里需要注意的一个用法是 split 函数
6、数据提取
第五部分是数据提取,也是数据分析中最常见的一个工作。这部分主要使用三个函数,loc,iloc和ix,loc函数按标签值进行提取,iloc按位置进行提取,ix可以同时按标签和位置进行提取。
按标签提取(loc)
按位置提取(iloc)
使用iloc函数按位置对数据表中的数据进行提取,这里冒号前后的数字不再是索引的标签名称,而是数据所在的位置,从0开始。
按条件提取(区域和条件值)
除了按标签和位置提起数据以外,还可以按具体的条件进行数据。下面使用loc和isin两个函数配合使用,按指定条件对数据进行提取 。
数值提取还可以完成类似数据分列的工作,从合并的数值中提取出制定的数值。
7、数据筛选
使用与,或,非三个条件配合大于,小于和等于对数据进行筛选,并进行计数和求和。与excel中的筛选功能和countifs和sumifs功能相似。 使用“与”条件进行筛选,条件是年龄大于25岁,并且城市为beijing。筛选后只有一条数据符合要求。
8、数据筛选
Groupby是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就可以,也可以同时制定多个列名称,groupby按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。
可以在groupby中设置列名称来对特定的列进行汇总。下面的代码中按城市对id字段进行汇总计数。
在前面的基础上增加第二个列名称,分布对city和size两个字段进行计数汇总。
除了计数和求和外,还可以对汇总后的数据同时按多个维度进行计算,下面的代码中按城市对price字段进行汇总,并分别计算price的数量,总金额和平均金额。
9、数据透视
Excel中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总。Python中也提供了数据透视表功能。通过pivot_table函数实现同样的效果。
数据透视表也是常用的一种数据分类汇总方式,并且功能上比groupby要强大一些。下面的代码中设定city为行字段,size为列字段,price为值字段。分别计算price的数量和金额并且按行与列进行汇总。
10、数据统计
数据采样
Excel的数据分析功能中提供了数据抽样的功能,如下图所示。Python通过sample函数完成数据采样。Sample是进行数据采样的函数,设置n的数量就可以了。函数自动返回参与的结果。
Weights参数是采样的权重,通过设置不同的权重可以更改采样的结果,权重高的数据将更有希望被选中。这里手动设置6条数据的权重值。将前面4个设置为0,后面两个分别设置为0.5。
描述统计
Describe函数是进行描述统计的函数,自动生成数据的数量,均值,标准差等数据。下面的代码中对数据表进行描述统计,并使用round函数设置结果显示的小数位。并对结果数据进行转置。
Cov函数用来计算两个字段间的协方差,可以只对特定字段进行计算,也可以对整个数据表中各个列之间进行计算。
Excel的数据分析功能中提供了相关系数的计算功能,Python中则通过corr函数完成相关分析的操作,并返回相关系数。
Corr函数用来计算数据间的相关系数,可以单独对特定数据进行计算,也可以对整个数据表中各个列进行计算。相关系数在-1到1之间,接近1为正相关,接近-1为负相关,0为不相关。