一起学Pandas系列基础篇---查询

一起学Pandas系列基础篇—查询数据(一)


本篇学习内容介绍

原始数据结构:
在这里插入图片描述

一、返回布尔值的逻辑运算

1. 对列的逻辑运算:查询语文成绩大于80分

df.语文 > 80

结果展示:
在这里插入图片描述

注意点:
返回一个由布尔值组成的Series
在这里插入图片描述

2.对索引的逻辑运算:查询索引是否为1

df.index == 1

结果展示:
在这里插入图片描述
注意点:
判断索引是否为1,返回一个array类型的数组
在这里插入图片描述

3.对DataFrame数据中多列进行逻辑运算:查询成绩是否大于60分

df.loc[:,'语文':'科学']>=60

结果展示:

在这里插入图片描述

4.与Python位运算的组合运算:语文成绩不小于60分,且是C班的学生

~(df.语文<60) & (df['班级']=='C')

结果展示:
在这里插入图片描述

二、返回数据的逻辑运算

1. 切片

  • 选择语文分数是8分的学生
df[df['语文'] == 8]

结果展示:
在这里插入图片描述

  • 选择语文分数不等于8分的学生
df[~(df['语文'] == 8)]

结果展示:
在这里插入图片描述

  • 姓名为“Ben”的学生的数据
df[df.姓名=='Ben']

结果展示:
在这里插入图片描述

  • 返回语文成绩好于数学成绩的学生数据
df[df.语文>df.数学]

结果展示:
在这里插入图片描述

2.loc

  • 返回语文大于90分,显示姓名和语文成绩
df.loc[df['语文']>90,['姓名','语文']]

结果展示:
在这里插入图片描述

  • 返回语文大于90分,并且数学大于90分的数据
df.loc[(df.语文>90) & (df.数学>90)]

结果展示:
在这里插入图片描述

  • 返回语文大于90分,或者数学大于90分的数据
df.loc[(df.语文>90) | (df.数学>90)]

结果展示:
在这里插入图片描述

3.all和any的用法

  • 语文、数学成绩全部超过90的数据
df[(df.loc[:, ['语文','数学']] >90).all(1)]

结果展示:
在这里插入图片描述

  • 语文、数学成绩至少有一个超过90的数据
df[(df.loc[:, ['语文','数学']] >90).any(1)]

结果展示:
在这里插入图片描述
注意点:
上述对两个列整体先做逻辑计算得到一个两列的布尔序列,再用all和any在行方向上做逻辑计算:

df[(df.loc[:, ['语文','数学']] >90)]

在这里插入图片描述

三、函数筛选

1. 查询最大索引的语文成绩

df.语文[lambda s: max(s.index)]

结果展示:
在这里插入图片描述
注意点:
s就是指df.语文这个Series

2.返回语文成绩等于8的数据

df[lambda df: df['语文']==8]

结果展示:
在这里插入图片描述

3.返回语文成绩等于8的姓名、语文、英语数据

df.loc[lambda df: df['语文']==8,['姓名','语文','英语']]

结果展示:
在这里插入图片描述

4.根据列索引的字符数是否等于2判断

df.loc[:, lambda df: df.columns.str.len()==2]

结果展示:
在这里插入图片描述

5.列索引名称包含‘语’的数据

df.loc[:, lambda df: [i for i in df.columns if '语' in i]]

结果展示:
在这里插入图片描述

总结

以上例举了逻辑运算返回布尔值、使用切片、loc[]、iloc[]等返回数据、使用lambda函数筛选数据等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值