文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python pandas query的使用方法

2024-04-02 19:55

关注

前言:

Pandas 中应用 query 函数来进行数据筛选。

query 函数的一般用法如下:

df.query('expression')

常用方法:

#!/usr/bin/python
import pandas as pd
import numpy as np
data = {
 'brand':['Python',' C ',' C++ ','C#','Java'],
 'A':[10,2,5,20,16],
 'B':[4,6,8,12,10],
 'C':[8,12,18,8,2],
 'D':[6,18,14,6,12],
 'till years':[4,1,1,30,30]
 }
df = pd.DataFrame(data=data)
print("df数据打印:\n", df, '\n')

print('查找数据:\n', df.query('brand == "Python"'), '\n')
print('查找数据:\n', df[df['brand'] == "Python"], '\n')

可以使用df.query('brand == "Python"')进行查找,也可以使用df[df['brand'] == "Python"]这种方式进行查找。

out:

df数据打印:
     brand   A   B   C   D  till years
0  Python  10   4   8   6           4
1      C    2   6  12  18           1
2    C++    5   8  18  14           1
3      C#  20  12   8   6          30
4    Java  16  10   2  12          30
 
查找数据:
     brand   A  B  C  D  till years
0  Python  10  4  8  6           4
 
查找数据:
     brand   A  B  C  D  till years
0  Python  10  4  8  6           4
通过数学表达式来筛选:

除了直接通过等于某个值来筛选, query 函数还支持通过数学表达式来进行数据筛选,包括 > 、 < 、 + 、 - 、 * 、 / 等。

print('查找数据:\n', df.query('A > 15'), '\n')

out:

查找数据:
   brand   A   B  C   D  till years
3    C#  20  12  8   6          30
4  Java  16  10  2  12          30

通过变量筛选:

在程序比较长的时候,经常会使用变量来作为筛选条件, query 函数在使用变量作为判断标准时,通过在变量前面添加 @ 符号来实现,

示例如下:

name = 'Java'
print('查找数据:\n', df.query('brand == @name'), '\n')

out:

查找数据:
   brand   A   B  C   D  till years
4  Java  16  10  2  12          30
通过列表数据筛选:

当需要在某列中筛选多个符合要求的值的时候,可以通过列表( list )来实现,示例如下:

name = ['Python', 'Java']
print('查找数据:\n', df.query('brand in @name'), '\n')

out:

查找数据:
     brand   A   B  C   D  till years
0  Python  10   4  8   6           4
4    Java  16  10  2  12          30

多条件筛选:

name = ['Python', 'Java']
print('查找数据:\n', df.query('brand in @name & A > 15'), '\n')

out:

查找数据:
   brand   A   B  C   D  till years
4  Java  16  10  2  12          30

列名称中有空格的情况,使用``进行处理:

使用引号处理的话,会报错。

print('查找数据:\n', df.query('`till years` > 10'), '\n')

out:

查找数据:
   brand   A   B  C   D  till years
3    C#  20  12  8   6          30
4  Java  16  10  2  12          30

筛选后选取数据列:

name = ['brand', 'A', 'B', 'till years']
print('查找数据:\n', df.query('`till years` > 10')[name], '\n')

out:

查找数据:
   brand   A   B  till years
3    C#  20  12          30
4  Java  16  10          30

总结:

当用到多条件筛选时,使用query就会显得简洁的多:

print(df[(df['brand'] == 'Python') & (df['A'] == 10) & (df['B'] == 4)])
print(df.query('brand == "Python" & A == 10 & B == 4'))

到此这篇关于python pandas query的使用方法的文章就介绍到这了,更多相关python pandas query 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯