数据查询是根据指定的查询条件,从给定的数据中查找出需要的数据。本节分单条件查询和多条件查询两种情况进行介绍。
单条件查询
【问题描述】
根据指定的单个条件,从给定数据中查找出需要的数据。
【示例3-29】
本例使用的Excel文件的完整路径为“D:/Samples/ch03/04 数据查询/单一查询/个人信息-查询.xlsx”。该文件打开后如图3-20所示,工作表中前5行是给定的数据,是一些人员的个人信息。试根据指定的编号3,1和2,从给定的数据中找到编号对应的人员的数据。
图3-20 个人信息查询
- 编写下面的代码:
code.python
import pandas as pd
df = pd.read_excel(r'D:/Samples/ch03/04 数据查询/单一查询/个人信息-查询.xlsx', engine='openpyxl', sheet_name=0, nrows=5, index_col=0)
result = df.loc[[3, 1, 2]]
print(result)
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出查询到的数据。
code.python
>>> == RESTART: D:/Samples/1.py =
姓名 额度 名次
编号
3.0 王二 300.0 2.0
1.0 张三 100.0 4.0
2.0 李四 200.0 3.0
多条件查询
【问题描述】
根据指定的多个条件,从给定数据中查找出需要的数据。
【示例3-30】
本例使用的Excel文件的完整路径为“D:/Samples/ch03/04 数据查询/多条件查询/销售情况-多条件查询.xlsx”。该文件打开后如图3-21所示,是各种产品销售信息。现根据给定的数据,查询销售人员周德宇卖商品彩电的数量和总额,以及销售人员王学敏卖冰箱的数量和总额。
图3-21 产品销售信息
- 编写下面的代码:
code.python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('D:/Samples/ch03/01 数据查询/多条件查询/销售情况-多条件查询.xlsx',
engine='openpyxl', usecols=[0, 1, 2, 3], nrows=11)
# 多条件查询数据
query = df.query('(销售人员=="周德宇" and 商品=="彩电") or(销售人员=="王学敏" and 商品=="冰箱")')
# 输出查询结果
print(query)
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存。运行脚本,在IDLE Shell窗口输出查询结果。
code.python
>>> == RESTART: D:/Samples/1.py =
销售人员 商品 数量 总额
1 周德宇 彩电 83 249000
3 王学敏 冰箱 58 290000
【知识点扩展】
本例用DataFrame大小的query方法实现多条件查询。查询时,直接将多条件逻辑运算表达式作为参数赋给query方法即可,即
code.python
query = df.query('(销售人员=="周德宇" and 商品=="彩电") or(销售人员=="王学敏" and 商品=="冰箱")')