一、Pandas查询数据的几种方法

1.df.loc方法,根据行、列的标签值查询

2.df.iloc方法,根据行、列的数字位置查询

3.df.where方法,

4.df.query方法

二、查询数据方法的实现案例

注:在查询数据过程中会存在降维的情况,DataFrame中查询出某列或某行为Series类型,从DataFrame和Series中查询出某个值为具体的编程语言中的类型,如 int,float,str等类型

1、df.loc查询数据方法

①使用单个label值查询数据

得到单个值: dataset.loc["2018-01-09", 'bWendu']

 得到一个Series:dataset.loc["2018-01-09", ['bWendu', 'yWendi']]

 

②使用值列表批量查询

得到一个Series:dataset.loc[['2018-11-06', '2018-11-07', '2018-11-08'], 'bWendu']

得到一个DataFrame:dataset.loc[['2018-11-06', '2018-11-07', '2018-11-08'], ['bWendu', 'yWendu']] 

 

③使用数值区间进行范围查询

注意输出的区间既包括开始,也包括结束

按行的index区间查找:dataset.loc['2018-11-06':'2018-11-15', 'bWendu']

案列的index区间查找:dataset.loc['2018-11-06', 'bWendu':'fengxiang']

 

 行和列都按区间查找:dataset.loc['2018-11-06':'2018-11-11', 'bWendu':'fengxiang']

 

④使用条件表达式查询

查询最高温度高于35度的天的信息:dataset.loc[df['bWendu'] > 35, :] 

复杂条件查,查询符合条件的一天

注意:每个条件要用括号包含,且条件之间要用“&”符号连接

dataset.loc[(dataset["bWendu"] <= 30) & (dataset["yWendu"] >= 15) & (dataset["tianqi"] == '晴') & (dataset["aqiLevel"] == 1), :]

⑤调用函数查询:lambda df:df就是设的要在其上操作的对象

dataset.loc[lambda df: (df["bWendu"] <= 30) & (df["yWendu"] >= 15), :]

可以自己设一个函数:

def query_data(df):

        return df.index.str.startswith("2018-09") & df["aqiLevel"]==1

dataset.loc[query_data, :]

数据来源:B站up主:蚂蚁学Python

数据链接:peiss/ant-learn-pandas: pandas学习课程代码仓库 (github.com)

声明:本文章只供学习参考,并不用于商用!如有侵权请及时联系博主,做出调整。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐