文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-26 18:47

关注

文章目录

一、写在前面

如果说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,东风,22020/7/17,多云,25,21,西风,32020/7/20,小雨,24,15,东北风,52020/7/21,多云转晴,22,17,东风,22020/7/22,多云,20,16,西风,12020/7/23,雷阵雨,20,20,东北风,32020/7/24,多云,26,17,西南风,22020/7/27,小雨,26,17,东风,32020/7/28,多云转晴,25,24,西风,52020/7/29,,24,23,东北风,22020/7/30,,22,20,东风,22020/7/31,,26,22,东风,32020/8/3,,25,22,西风,22020/8/4,多云转晴,24,16,东北风,32020/8/5,多云,22,14,东风,52020/8/6,雷阵雨,20,12,西风,22020/8/7,小雨,20,13,东北风,12020/8/10,多云转晴,26,22,西南风,3

读入数据:

import pandas as pddata_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 pddata_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_coldf=df.dropna(how="all",axis='rows')print(df.loc['2020/7/28','天气'])

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

import pandas as pddata_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'])   # 设置indexprint(df.loc['2020/7/28','天气'])

在这里插入图片描述

2.2 查询列表对应的值

df.loc[['2020/7/28','2020/7/29','2020/7/30'],'天气']

在这里插入图片描述

df.loc[['2020/7/28','2020/7/29','2020/7/30'],['天气','高温','低温']]

在这里插入图片描述

2.3 查询区间内的结果

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

df.loc['2020/7/28':'2020/8/3','天气':'风速']

在这里插入图片描述

2.4 条件查询

df.loc[df['低温']>22,:]  # 后面的冒号指所有的列

在这里插入图片描述

df.loc[(df['低温']<22) & (df['高温']>23) & (df['天气']=='晴'),:]

在这里插入图片描述

2.5 按照函数要求查询

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

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

在这里插入图片描述

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

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

在这里插入图片描述

三、写在最后

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

来源地址:https://blog.csdn.net/weixin_47139649/article/details/126854365

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯