python数据分析_Python数据分析—子查询

在对海量数据进行分析的过程中,可能需要对数据进行子查询的操作。 比如要查询所有借钱男性中年龄最大的人的信息,首先要查出所有男性的信息,再查在这些人中间年龄最大的人的信息,这就是子查询。

这在数据分析过程中必不可少,本节教大家如何在python中对数据框进行一些子查询的操作。

本文目录
  1. 查询最大年龄的学生姓名

  2. 查询最大年龄的男生姓名

  3. 查询身高前几的学生信息

注意:本文沿用数据分析第一课【Python数据分析—数据建立】里的数据框date_frame:

30d5ca59827e37dcd442b18d58c26e98.png

 1   查询最大年龄的学生姓名

如果我们想查询最大年龄的学生姓名,该怎么办? 可以先查询所有学生中的最大年龄,再去查询该年龄对应的学生姓名。 查询所有学生中的最大年龄,代码如下:
date_frame.age.max()
得到结果如下:

86ec90855f096e55f6ca6385cc618e15.png

.max()表示查找age这一列的最大值。 如果想要得到该年龄对应学生的所有信息,可以输入如下语句:
date_frame[date_frame.age == date_frame.age.max()]
得到结果如下:

6cf57e0738e2ecf975d675a036310587.png

如果只想看最大年龄对应的学生姓名,可以输入如下语句 :
date_frame[date_frame.age == date_frame.age.max()].name
得到结果如下:

03da6d1d27ccb45cc23a1eb6aa42878f.png

 2   查询最大年龄的男生姓名

如果我们把条件稍加复杂,想查询出最大年龄的男生姓名,该怎么办? 可以先查询所有男生中的最大年龄,再去查询该年龄对应的男生姓名。 首先查询所有男生中的最大年龄,把它赋值给一个变量,具体语句如下:
male_max_age = date_frame[date_frame.gender == '男']['age'].max()
得到结果如下: 18 如果想要得到该年龄对应男生的所有信息,可以输入如下语句:
date_frame[(date_frame.gender == '男') & (date_frame.age == male_max_age)]
得到结果如下:

5e3ec54b0647ee7972498dcab61bfbdd.png

如果只想看最大年龄对应男生的姓名,可以输入如下语句:
date_frame[(date_frame.gender == '男') & (date_frame.age == male_max_age)].name
得到结果如下:

96440912906c6a87908bbbafe5125f03.png

 3   查询身高前几的学生信息

如果我们想查询身高前几的学生信息。 可以先对学生身高进行去重、排序,再用head函数找出排名前几的学生身高,最后用isin函数查找这些学生的信息。 假设我要找身高排名前三的学生信息。 可以先找到排名前三的身高,具体语句如下:
maxHeight = date_frame.height.drop_duplicates().sort_values(ascending = False).head(3)
得到结果如下:

21534815100f3f15b9dd56aaacb545e3.png

其中,.drop_duplicates()表示对height列去重。 .sort_values(ascending = False)表示对去重后的height列进行降序排列。 .head(3) 表示取前三个height值。 然后再找到身高前三的学生信息,具体语句如下:
date_frame[date_frame.height.isin(maxHeight)]
得到结果如下:

3789375adc030ebd5179abfd693461e6.png

至此,在python中对数据框进行子查询的操作已介绍完毕, 大家可以动手练习一下,思考一下还可不可以对数据框进行别的子查询操作f61b3281ccc67487e6245e7acdd46732.png往期回顾: 3D星空图 3D星空图V2版 520表白代码合集 用python绘制皮卡丘

娱乐圈排行榜动态条形图绘制

ef6092e889f8e135955396a23b2c3160.png

9c99b4e0643b78d4ecdb6b33f8382b63.png

扫一扫关注我

19967879837

投稿微信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值