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()
Pandas查询数据的简便方法df.query
最新推荐文章于 2024-05-02 05:45:02 发布