Pandas查询数据的简便方法df.query

18 篇文章 0 订阅
import os
import pandas as pd

os.chdir(r'F:\ant_python\代码03_Python使用Pandas入门数据分析\ant-learn-pandas')
df = pd.read_csv("./datas/beijing_tianqi/beijing_tianqi_2018.csv")

# 替换掉温度的后缀℃
df['bWendu'] = df['bWendu'].apply(lambda x :int(str(x).replace('℃','')))
df['yWendu'] = df['yWendu'].apply(lambda x :int(str(x).replace('℃','')))

'''
形式: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的方式传入外部变量

'''

# 使用dataframe条件表达式查询


df[df['yWendu'] < -10].head()

## 查询最高温度小于30度,并且最低温度大于15度,并且是晴天,并且天气为优的数据
df[
    (df["bWendu"]<=30) 
    & (df["yWendu"]>=15) 
    & (df["tianqi"]=='晴') 
    & (df["aqiLevel"]==1)
  ]

#  查询最低温度低于-10度的列表
df.query("yWendu < 3").head(3)

## 查询最高温度小于30度,并且最低温度大于15度,并且是晴天,并且天气为优的数据
df.query("bWendu<=30 & yWendu>=15 & tianqi=='晴' & aqiLevel==1")

# 查询温差大于15度的日子
df.query("bWendu-yWendu >= 15").head()

# 可以使用外部的变量


# 查询温度在这两个温度之间的数据
high_temperature = 15
low_temperature = 13

df.query("yWendu<=@high_temperature & yWendu>=@low_temperature").head()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值