Python中怎么使用query()进行优雅的查询
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"Python中怎么使用query()进行优雅的查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中怎么使用query(
千家信息网最后更新 2026年10月31日Python中怎么使用query()进行优雅的查询
这篇文章主要讲解了"Python中怎么使用query()进行优雅的查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中怎么使用query()进行优雅的查询"吧!

对于 Pandas 根据条件获取指定数据,相信大家都能够轻松的写出相应代码,但是如果你还没用过 query,相信你会被它的简洁所折服!
常规用法
先创建一个 DataFrame。
import pandas as pddf = pd.DataFrame( {'A': ['e', 'd', 'c', 'b', 'a'], 'B': ['f', 'b', 'c', 'd', 'e'], 'C': range(0, 10, 2), 'D': range(10, 0, -2), 'E.E': range(10, 5, -1)})我们现在选取 A列字母出现在B列 的所有行。先看两种常见写法。
>>> df[df['A'].isin(df['B'])] A B C D E.E0 e f 0 10 101 d b 2 8 92 c c 4 6 83 b d 6 4 7>>> df.loc[df['A'].isin(df['B'])] A B C D E.E0 e f 0 10 101 d b 2 8 92 c c 4 6 83 b d 6 4 7
下面使用 query() 来实现。
>>> df.query("A in B") A B C D E.E0 e f 0 10 101 d b 2 8 92 c c 4 6 83 b d 6 4 7可以看到使用 query 后的代码简洁易懂,并且它对于内存的消耗也更小。
多条件查询
选取 A列字母出现在B列,并且C列小于D列 的所有行。
>>> df.query('A in B and C < D') A B C D E.E0 e f 0 10 101 d b 2 8 92 c c 4 6 8这里 and 也可以用 & 表示。
引用变量
表达式中也可以使用外部定义的变量,在变量名前用@标明。
>>> number = 5>>> df.query('A in B & C > @number') A B C D E.E3 b d 6 4 7索引选取
选取 A列字母出现在B列,并且索引大于2 的所有行。
>>> df.query('A in B and index > 2') A B C D E.E3 b d 6 4 7多索引选取
创建一个两层索引的 DataFrame。
>>> import numpy as np>>> colors = ['yellow']*3 + ['red']*2>>> rank = [str(i) for i in range(5)]>>> index = pd.MultiIndex.from_arrays([colors, rank], names=['color', 'rank'])>>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index)>>> df = pd.DataFrame(np.arange(10).reshape(5, 2),columns=['A', 'B'] , index=index)>>> df A Bcolor rank yellow 0 0 1 1 2 3 2 4 5red 3 6 7 4 8 9
1、当有多层索引有名称时,通过索引名称直接选取。
>>> df.query("color == 'red'") A Bcolor rank red 3 6 7 4 8 92、当有多层索引无名时,通过索引级别来选取。
>>> df.index.names = [None, None]>>> df.query("ilevel_0 == 'red'") A Bred 3 6 7 4 8 9>>> df.query("ilevel_1 == '4'") A Bred 4 8 9特殊字符
对于列名中间有空格或运算符等其他特殊符号,需要使用反引号 ``。
>>> df.query('A == B | (C + 2 > `E.E`)') A B C D E.E2 c c 4 6 83 b d 6 4 74 a e 8 2 6总的来说,query() 用法比较简单,可以快速上手,代码可读性也提高了不少。
感谢各位的阅读,以上就是"Python中怎么使用query()进行优雅的查询"的内容了,经过本文的学习后,相信大家对Python中怎么使用query()进行优雅的查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
索引
查询
优雅
代码
变量
字母
学习
特殊
简洁
内容
名称
多层
条件
内存
写法
可读性
字符
就是
常见
常规
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
金诺互联网科技
百单互联网科技有限公司
丰台科技园 互联网
互联网金融 科技创新
狮子座互联网科技培训
华脉科技工业互联网产品
互联网公司会议桌创意科技软装饰
互联网科技公司需要的职位
中盈科技互联网信息有限公司
晓花互联网科技有限公司网址
开一家科技互联网公司需要多少钱
想开互联网科技公司怎么样
众安科技工业互联网合作
山东子淼互联网科技有限公司
上海钢联属于互联网科技股吗
四川互联网展示科技馆设计
陕西云淼互联网科技公司
广州互联网高科技取餐柜
扫呗互联网科技有限公司
青岛易易互联网科技
新华互联网科技学校
中国互联网科技股
善班互联网科技
互联网 新科技
居家互联网科技有限公司
华中科技有哪些互联网大佬
现代科技和互联网有关系吗
互联网科技公司实习生
华夏互联网科技业
搜狐科技互联网