Pandas查询数据df.query的使用

目录
  • 使用dataframe条件表达式查询
  • 复杂条件查询
  • 使用df.query可以简化查询

方法对比:
使用df[(df[“a”] > 3) & (df[“b”]<5)]的方式;
使用df.query(“a>3 & b<5”)的方式;

df = pd.read_csv("beijing_tianqi_2018.csv")
df.head()
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
0 2018-01-01 3℃ -6℃ 晴~多云 东北风 1-2级 59 2
1 2018-01-02 2℃ -5℃ 阴~多云 东北风 1-2级 49 1
2 2018-01-03 2℃ -5℃ 多云 北风 1-2级 28 1
3 2018-01-04 0℃ -8℃ 东北风 1-2级 28 1
4 2018-01-05 3℃ -6℃ 多云~晴 西北风 1-2级 50 1
# 替换掉温度的后缀℃
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int32')
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int32')

使用dataframe条件表达式查询

最低温度低于-10度的列表

df[df["yWendu"] < -10].head()
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
22 2018-01-23 -4 -12 西北风 3-4级 31 1
23 2018-01-24 -4 -11 西南风 1-2级 34 1
24 2018-01-25 -3 -11 多云 东北风 1-2级 27 1
359 2018-12-26 -2 -11 晴~多云 东北风 2级 26 1
360 2018-12-27 -5 -12 多云~晴 西北风 3级 48 1

复杂条件查询

注意,组合条件用&符号合并,每个条件判断都得带括号

## 查询最高温度小于30度,并且最低温度大于15度,并且是晴天,并且天气为优的数据
df[
    (df["bWendu"]<=30)
    & (df["yWendu"]>=15)
    & (df["tianqi"]=='晴')
    & (df["aqiLevel"]==1)]
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
235 2018-08-24 30 20 北风 1-2级 40 1
249 2018-09-07 27 16 西北风 3-4级 22 1

使用df.query可以简化查询

形式:DataFrame.query(expr, inplace=False, **kwargs)

其中expr为要返回boolean结果的字符串表达式

形如:

  • df.query(‘a<100’)
  • df.query(‘a < b & b < c’),或者df.query(’(a<b)&(b<c)’)

df.query可支持的表达式语法:

  • 逻辑操作符: &, |, ~
  • 比较操作符: <, <=, ==, !=, >=, >
  • 单变量操作符: -
  • 多变量操作符: +, -, *, /, %

df.query中可以使用@var的方式传入外部变量

df.query支持的语法来自NumExpr,地址:
https://numexpr.readthedocs.io/projects/NumExpr3/en/latest/index.html

查询最低温度低于-10度的列表

df.query("yWendu < 3").head(3)
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
0 2018-01-01 3 -6 晴~多云 东北风 1-2级 59 2
1 2018-01-02 2 -5 阴~多云 东北风 1-2级 49 1
2 2018-01-03 2 -5 多云 北风 1-2级 28 1

查询最高温度小于30度,并且最低温度大于15度,并且是晴天,并且天气为优的数据

## 查询最高温度小于30度,并且最低温度大于15度,并且是晴天,并且天气为优的数据
df.query("bWendu<=30 & yWendu>=15 & tianqi=='晴' & aqiLevel==1")
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
235 2018-08-24 30 20 北风 1-2级 40 1
249 2018-09-07 27 16 西北风 3-4级 22 1

查询温差大于15度的日子

df.query("bWendu-yWendu >= 15").head()
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
68 2018-03-10 14 -2 东南风 1-2级 171 中度污染 4
82 2018-03-24 22 5 西南风 1-2级 119 轻度污染 3
83 2018-03-25 24 7 南风 1-2级 78 2
84 2018-03-26 25 7 多云 西南风 1-2级 151 中度污染 4
85 2018-03-27 27 11 南风 1-2级 243 重度污染 5

可以使用外部的变量

# 查询温度在这两个温度之间的数据
high_temperature = 15
low_temperature = 13
df.query("yWendu<=@high_temperature & yWendu>=@low_temperature").head()
  ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo aqiLevel
107 2018-04-18 27 14 多云~晴 西南风 3-4级 147 轻度污染 3
108 2018-04-19 26 13 多云 东南风 4-5级 170 中度污染 4
109 2018-04-20 28 14 多云~小雨 南风 4-5级 164 中度污染 4
116 2018-04-27 25 13 西南风 3-4级 112 轻度污染 3
119 2018-04-30 24 14 多云 南风 3-4级 62 2

到此这篇关于Pandas查询数据df.query的使用的文章就介绍到这了,更多相关Pandas查询数据df.query 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Pandas探索之高性能函数eval和query解析

    Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一. 相较于 Python 的内置函数, Pandas 库为我们提供了一系列性能更高的数据处理函数,本节将向大家介绍 Pandas 库

  • Python Pandas pandas.read_sql_query函数实例用法分析

    Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.Pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一.本文主要介绍一下Pandas中read_sql_query方法的使用. pandas.read_sql_query(sql,con,index_col = None,coerce_float =

  • pandas 查询函数query的用法说明

    query() 函数简介 pandas的query()方法是基于DataFrame列的计算代数式,对于按照某列的规则进行过滤的操作,可以使用query方法. 代码示例 import pandas as pd df = pd.DataFrame({'a':[1, 2, 3, 4, 5, 6], 'b':[1, 2, 3, 4, 5, 6], 'c':[1, 2, 3, 4, 5, 6]}) query_list = [1, 2] df_2 = df.query('c not in @query_l

  • pandas之query方法和sample随机抽样操作

    query方法 在 pandas 中,支持把字符串形式的查询表达式传入 query 方法来查询数据,其表达式的执行结果必须返回布尔列表.在进行复杂索引时,由于这种检索方式无需像普通方法一样重复使用 DataFrame 的名字来引用列名,一般而言会使代码长度在不降低可读性的前提下有所减少. 例如 In [61]: df.query('((School == "Fudan University")&' ....: ' (Grade == "Senior")&am

  • Pandas使用query()优雅的查询实例

    目录 常规用法 多条件查询 引用变量 索引选取 多索引选取 特殊字符 对于 Pandas 根据条件获取指定数据,相信大家都能够轻松的写出相应代码,但是如果你还没用过 query,相信你会被它的简洁所折服! 常规用法 先创建一个 DataFrame. import pandas as pd df = pd.DataFrame(     {'A': ['e', 'd', 'c', 'b', 'a'],      'B': ['f', 'b', 'c', 'd', 'e'],      'C': ra

  • Pandas查询数据df.query的使用

    目录 使用dataframe条件表达式查询 复杂条件查询 使用df.query可以简化查询 方法对比:使用df[(df[“a”] > 3) & (df[“b”]<5)]的方式:使用df.query(“a>3 & b<5”)的方式: df = pd.read_csv("beijing_tianqi_2018.csv") df.head()   ymd bWendu yWendu tianqi fengxiang fengli aqi aqiInfo

  • Python数据分析之如何利用pandas查询数据示例代码

    前言 在数据分析领域,最热门的莫过于Python和R语言,本文将详细给大家介绍关于Python利用pandas查询数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 示例代码 这里的查询数据相当于R语言里的subset功能,可以通过布尔索引有针对的选取原数据的子集.指定行.指定列等.我们先导入一个student数据集: student = pd.io.parsers.read_csv('C:\\Users\\admin\\Desktop\\student.csv')

  • 如何利用Pandas查询选取数据

    目录 一,Pandas查询数据的几种方法 二,Pandas使用df.loc查询数据的方法 df[] df.loc方法查询 df.iloc方法查询 总结 一,Pandas查询数据的几种方法 df[]按行列选取,这种情况一次只能选取行或者列 df.loc方法,根据行.列的标签值查询 df.iloc方法,根据行.列的数字位置查询,根据索引定位 df.query方法 二,Pandas使用df.loc查询数据的方法 使用单个label值查询数据 使用值列表批量查询 使用数值区间进行范围查询 使用条件表达式

  • pandas实现数据读取&清洗&分析的项目实践

    目录 一.数据读取和写入 1.1 CSV和txt文件: 1.2 Excel文件: 1.3 MYSQL数据库: 二.数据清洗 2.1 清除不需要的行数据 2.2 清除不需要的列 2.3 调整列的展示顺序或列标签名 2.4 对行数据进行排序 2.5 空值的处理 2.6 数据去重处理 2.7 对指定列数据进行初步加工 2.8 对DataFrame内所有数据进行初步加工处理 2.9 设置数据格式 三.数据切片和筛选查询 3.1 行切片 3.2 列切片 3.3 数据筛选和查询 3.4 遍历 四.数据简单统

  • Python Pandas实现数据分组求平均值并填充nan的示例

    Python实现按某一列关键字分组,并计算各列的平均值,并用该值填充该分类该列的nan值. DataFrame数据格式 fillna方式实现 groupby方式实现 DataFrame数据格式 以下是数据存储形式: fillna方式实现 1.按照industryName1列,筛选出业绩 2.筛选出相同行业的Series 3.计算平均值mean,采用fillna函数填充 4.append到新DataFrame中 5.循环遍历行业名称,完成2,3,4步骤 factordatafillna = pd.

  • python Pandas中数据的合并与分组聚合

    目录 一.字符串离散化示例 二.数据合并 2.1 join 2.2 merge 三.数据的分组和聚合 四.索引 总结 一.字符串离散化示例 对于一组电影数据,我们希望统计电影分类情况,应该如何处理数据?(每一个电影都有很多个分类) 思路:首先构造一个全为0的数组,列名为分类,如果某一条数据中分类出现过,就让0变为1 代码: # coding=utf-8 import pandas as pd from matplotlib import pyplot as plt import numpy as

  • pandas实现数据合并的示例代码

    目录 一. concat--数据合并 1.1 概述 1.2 指定合并的轴方向--axis 1.3 指定合并轴另外一个轴标签是否合并--join 1.4 指定合并轴原标签是否需要变化--ignore_index 1.5 指定合并轴方向新的index,便于区分数据--keys 1.6 指定合并轴方向新的index 的含义名称,一般和keys一起使用,让合并后的数据更直观--names 1.7 指定合并时是否允许合并轴上有重复标签--verify_integrity 二. merge--数据连接 2.

  • pandas实现数据可视化的示例代码

    目录 一.概述 1.1 plot函数参数 1.2 本文用到的数据源说明 二.折线图--kind='line' 三.柱状图--kind='bar' 3.1 各组数据(列)分开展示 3.2 各组(列)数据合并展示--stacked 3.3  横向柱状图--kind='barh' 四.直方图--kind='hist' 4.1 概述 4.2 自定义直方图横向区间数量 4.3 多子图展示多序列数据 4.4 一维数据密度图--kind='kde' 4.5 累积直方图--cumulative = True 五

  • ThinkPHP5查询数据及处理结果的方法小结

    本文实例讲述了ThinkPHP5查询数据及处理结果的方法.分享给大家供大家参考,具体如下: 在处理数据库查询结果时遇到了些问题,记录下用到过的几种查询方式和结果处理. 1. 查询某条记录 $where=array( "version_id"=>$version_id ); $data = model("PackageWhitelist")->where($where)->find(); $this->assign("package_

随机推荐