Python中怎么使用query()进行优雅的查询
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要讲解了"Python中怎么使用query()进行优雅的查询",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python中怎么使用query(
千家信息网最后更新 2025年01月16日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 9
2、当有多层索引无名时,通过索引级别来选取。
>>> 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安全错误
数据库的锁怎样保障安全
湖北晓译软件开发有限公司
关系型数据库数据分析
电网网络技术基础知识
网络安全图片及文字
电脑访问另一个数据库
2017年网络安全主题是
宽带显示服务器无响应怎么解决
武汉大学网络安全学院实力
软件开发为何老得快
源头抓好网络安全治理
青岛平台软件开发解决方案
反射机抽象封装数据库删除
福州员工服务管理软件开发
戴尔卡片服务器主板电源
数据库加入记录
公司网络安全的治理机制是什么
服务器bgp租用价格
安徽电视墙服务器多少钱
企业网络安全通知
软件开发组织架构及分工
qq imap 服务器
2017年网络安全主题是
中国商业报告数据库
规范化软件开发具体要求
网络安全意识高峰
医院服务器验收单
为什么服务器端口全开者
服务器bgp租用价格
苏州品质联想服务器安装
复印件打印机和网络安全有关系吗