首页 > 其他分享 >【Pandas总结】第五节 Pandas 数据查询方法总结_df.loc()总结

【Pandas总结】第五节 Pandas 数据查询方法总结_df.loc()总结

时间:2022-10-13 19:00:21浏览次数:62  
标签:总结 loc df pandas 28 查询 2020 Pandas

一、写在前面

如果说Pandas最重要的方法是什么,毫无疑问就是查询数据;所以,这节的内容应当是Pandas的核心知识点。能够按我们的要求查询出所需的数据,是我们使用Pandas的最重要功能! 综上,这节内容十分十分十分十分的重要。

pandas常用的查询函数有:df.loc(),df.iloc(),df.where(),de.query();

函数 功能
df.loc() 根据行,列的标签进行查询
df.iloc() 根据行,列的数字位置进行查询
df.where() 可以根据条件返回满足需求的结果
de.query() 可以根据条件返回满足需求的结果

以上的几种方法,都可以实现相同的功能,所以我们能够熟练的掌握其中一个就好,这里我推荐df.loc(),因为这个函数可以实现的功能是最多的,一般的应用场景,只要会这个就完全够用了;

二、查询方法:df.loc()

pandas通常碰到的查询需求,有如下五种:按数值,列表,区间,条件,函数五种方法进行查询;

使用的数据如下,大家可以复制到本地进行练习:

Date,天气,高温,低温,风向,风速
2020/7/16,晴,26,21,东风,2
2020/7/17,多云,25,21,西风,3
2020/7/20,小雨,24,15,东北风,5
2020/7/21,多云转晴,22,17,东风,2
2020/7/22,多云,20,16,西风,1
2020/7/23,雷阵雨,20,20,东北风,3
2020/7/24,多云,26,17,西南风,2
2020/7/27,小雨,26,17,东风,3
2020/7/28,多云转晴,25,24,西风,5
2020/7/29,晴,24,23,东北风,2
2020/7/30,晴,22,20,东风,2
2020/7/31,晴,26,22,东风,3
2020/8/3,晴,25,22,西风,2
2020/8/4,多云转晴,24,16,东北风,3
2020/8/5,多云,22,14,东风,5
2020/8/6,雷阵雨,20,12,西风,2
2020/8/7,小雨,20,13,东北风,1
2020/8/10,多云转晴,26,22,西南风,3

读入数据:

import pandas as pd
data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk') # 这里因为我是用Excel保存的csv,所以编码格式是gbk, 大部分时候使用UTF-8

2.1 查询单个值

通常情况下,使用df.loc()时,只要传入行列名即可返回要查询的值,比如:我们需要查询 2020/7/28 的天气,可以通过:df.loc['2020-7-28','天气'] 来查询,然后我们会发现报错:KeyError: '2020-7-28'; 这里报错的原因是:我们在读取数据的时候,没有将日期设置为索引值;所以我们需要这样做:

方法一:在读入数据的时候设置index

import pandas as pd
data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk',index_col='Date')  # 在这里设置index_col
df=df.dropna(how="all",axis='rows')
print(df.loc['2020/7/28','天气'])

在这里插入图片描述 方法二:读入数据后,设置index

import pandas as pd
data_path_2=r"E:\VSCODE\2_numpy_pandas\pandas\data_select.csv"
df=pd.read_csv(data_path_2,encoding='gbk')
df=df.dropna(how="all",axis='rows')
df = df.set_index(['Date'])   # 设置index
print(df.loc['2020/7/28','天气'])

在这里插入图片描述

2.2 查询列表对应的值

  • 要求:需要查询 2020/7/28 ,29,30 三天的天气
df.loc[['2020/7/28','2020/7/29','2020/7/30'],'天气']

在这里插入图片描述

  • 要求:需要查询 2020/7/28 ,29,30 三天的天气,最高温度,最低温度
df.loc[['2020/7/28','2020/7/29','2020/7/30'],['天气','高温','低温']]

在这里插入图片描述

2.3 查询区间内的结果

可以使用 : 来查询区间内的结果,行与列均可以使用,举例如下:

  • 要求:查询2020/7/28 ~ 2020/8/3 的所有天气情况;
df.loc['2020/7/28':'2020/8/3','天气':'风速']

在这里插入图片描述

2.4 条件查询

  • 要求:查询最低温度大于22度的天气;
df.loc[df['低温']>22,:]  # 后面的冒号指所有的列

在这里插入图片描述

  • 要求:多条件查询,查询低温小于22℃,高温大于23℃,天气为晴的天气;
df.loc[(df['低温']<22) & (df['高温']>23) & (df['天气']=='晴'),:]

在这里插入图片描述

2.5 按照函数要求查询

  • 要求:查询7月份的晴天

方法一:使用上面的条件查询的方法

df.loc[(df.index.str.startswith('2020/7') & (df['天气']=='晴'))]

在这里插入图片描述

方法二:使用函数查询的方法

def func(df):
    return df.index.str.startswith('2020/7') & (df['天气']=='晴')

df.loc[func,:]

在这里插入图片描述

三、写在最后

pandas的查询方法有非常多,在刚开始学的时候会让我们眼花缭乱,我推荐的方法是:不学那么多,先只学这一个方法,就足够我们使用了。 等这个方法已经炉火纯青后,再学习别的方法; 今天的分享就到这里啦~

标签:总结,loc,df,pandas,28,查询,2020,Pandas
From: https://blog.51cto.com/u_15807450/5754538

相关文章

  • NetBSD安装中的一些问题总结
    参考文档:https://www.cioworld.cn/guide/install/netbsd-quick-installhttps://www.netbsd.org/docs/guide/en/最近迷上了BSD系统,玩了一阵子FreeBSD之后,发现FreeBSD对ar......
  • css面试点总结2
    css面试点-@import与link的详解css面试点-position属性css面试点-CSS预处理器(Sass/Less/Postcss)css面试点-css3的filter详解......
  • css面试点总结一
    css面试点-css盒子模型css面试点-flex布局,css3弹性盒子模型css面试点-BFC(块级格式化上下文)与常见布局方案css面试点-css层叠上下文css面试点-div居中方法(共8种)css面试点-清......
  • Mysql 异常:MySQLTransactionRollbackException: Lock wait timeout exceeded; try res
    问题现象接口响应时间超长,耗时几十秒才返回错误提示,后台日志中出现Lockwaittimeoutexceeded;tryrestartingtransaction的错误###Cause:com.mysql.cj.jdbc.excepti......
  • 简单总结一下第二天学习Sass的知识点
    Sass的目的之一就是为了少写css代码,便于阅读。为降低Sass编译后的css代码量,使用组合选择器更能提高网站的速度:先复习一下css选择器 //后代选择器articlesection{......
  • 10月13日内容总结——算法之二分法、三元表达式和各种生成式及匿名函数、部分常见内置
    目录一、算法简介之二分法(需要写的出来)简介什么是算法二分法二、三元表达式什么是三元表本质?三元表达式语法结构三、各种生成式列表生成式字典生成式集合生成式元组生成器(......
  • chap 3多分支结构 学习总结 第九组
    1.分支结构的定义1.1什么是分支结构?①.对于要先做判断再选择的问题就要使用分支结构。②.分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句......
  • python 异常总结:raise except
    raise语句是用来主动抛出一个指定的异常。raise语法格式:raise[Exception[,args[,traceback]]]raise主动抛出异常种类总结:except有匹配的error类型except......
  • 工作总结 #4
    在Avue-crud中搜索方法@search-change中将params传给query后,如下//搜索框搜索searchChange(params,done){this.query=params;this.page.currentPage=......
  • jQuery事件总结
    jQuery提供了两个方法一个是click方法用于监听用户单击操作,另一个方法是dbclick方法用于监听用户双击操作。click事件触发需要以下几点:click事件其实是由mousedown与mouseup......