用Python做数据分析之数据筛选及分类汇总

本文介绍了如何在Python中使用与、或、非条件对数据进行筛选,与Excel的筛选、countifs和sumifs功能相对应,并展示了groupby和pivot_table函数进行分类汇总的方法。此外,还提到了Python学习资源包,适合从零开始学习Python。
摘要由CSDN通过智能技术生成

1、按条件筛选(与,或,非)

为数据筛选,使用与,或,非三个条件配合大于,小于和等于对数据进行筛选,并进行计数和求和。与 excel 中的筛选功能和 countifs 和 sumifs 功能相似。

Excel 数据目录下提供了“筛选”功能,用于对数据表按不同的条件进行筛选。Python 中使用 loc 函数配合筛选条件来完成筛选功能。配合 sum 和 count 函数还能实现 excel 中 sumif 和 countif 函数的功能。

1)使用“与”条件进行筛选

条件是年龄大于 25 岁,并且城市为 beijing。筛选后只有一条数据符合要求。

1#使用“与”条件进行筛选

2df_inner.loc[(df_inner[‘age’] > 25) & (df_inner[‘city’] == ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]]

2)使用“或”条件进行筛选

年龄大于 25 岁或城市为 beijing。筛选后有 6 条数据符合要求。

1#使用“或”条件筛选

2df_inner.loc[(df_inner[‘age’] > 25) | (df_inner[‘city’] == ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort

3([‘age’])

3)求和

在前面的代码后增加 price 字段以及 sum 函数,按筛选后的结果将 price 字段值进行求和,相当于 excel 中 sumifs 的功能。

1 #对筛选后的数据按 price 字段进行求和

2 df_inner.loc[(df_inner[‘age’] > 25) | (df_inner[‘city’] == ‘beijing’),

3 [‘id’,‘city’,‘age’,‘category’,‘gender’,‘price’]].sort([‘age’]).price.sum()

4)使用“非”条件进行筛选

城市不等于 beijing。符合条件的数据有 4 条。将筛选结果按 id 列进行排序。

1#使用“非”条件进行筛选

2df_inner.loc[(df_inner[‘city’]

!= ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort([‘id’])

在前面的代码后面增加 city 列,并使用 count 函数进行计数。相当于 excel 中的 countifs 函数的功能。

1#对筛选后的数据按 city 列进行计数

2df_inner.loc[(df_inner[‘city’]

!= ‘beijing’), [‘id’,‘city’,‘age’,‘category’,‘gender’]].sort([‘id’]).city.count()

还有一种筛选的方式是用 query 函数。下面是具体的代码和筛选结果。

1#使用 query 函数进行筛选

2df_inner.query(‘city == [‘beijing’, ‘shanghai’]’)

在前面的代码后增加 price 字段和 sum 函数。对筛选后的 price 字段进行求和,相当于 excel 中的 sumifs 函数的功能。

1 #对筛选后的结果按 price 进行求和

2 df_inner.query(‘city == [‘beijing’, ‘shanghai’]’).price.sum()

3 12230

2、数据汇总

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

1)分类汇总

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

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

1 #对所有列进行计数汇总

2 df_inner.groupby(‘city’).count()

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

1 #对特定的 ID 列进行计数汇总

2 df_inner.groupby(‘city’)[‘id’].count()

3 city

4 beijing 2

5 guangzhou 1

6 shanghai 2

7 shenzhen 1

8 Name: id, dtype: int64

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

1 #对两个字段进行汇总计数

2 df_inner.groupby([‘city’,‘size’])[‘id’].count()

3 city size

4 beijing A 1

5 F 1

6 guangzhou A 1

7 shanghai A 1

8 B 1

9 shenzhen C 1

10 Name: id, dtype: int64

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

1 #对 city 字段进行汇总并计算 price 的合计和均值。

2 df_inner.groupby(‘city’)[‘price’].agg([len,np.sum, np.mean])

2)数据透视

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

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

1 #数据透视表

2pd.pivot_table(df_inner,index=[‘city’],values=[‘price’],columns=[‘size’],aggfunc=[len,np.sum],fill_value=0,margins=True)

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,Python自动化测试学习等教程。带你从零基础系统性的学好Python!

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

在这里插入图片描述

一、Python大礼包

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、 Python电子书

在这里插入图片描述

三、入门学习视频

四、 Python爬虫秘笈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、 数据分析全套资源

在这里插入图片描述

六、python副业兼职与全职路线

在这里插入图片描述
上述这份完整版的Python全套学习资料已经上传CSDN官方,如果需要可以微信扫描下方CSDN官方认证二维码 即可领取

👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值