iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在pandas中根据日期范围筛选数据
  • 949
分享到

如何在pandas中根据日期范围筛选数据

2023-06-06 10:06:34 949人浏览 安东尼
摘要

如何在pandas中根据日期范围筛选数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。日期转换用来筛选的列是 date 类型,所以这里要把要筛选的日期范围从字符

如何在pandas中根据日期范围筛选数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

日期转换

用来筛选的列是 date 类型,所以这里要把要筛选的日期范围从字符串转成 date 类型

比如我的数据包含列名为 trade_date,从 20050101 - 20190926 的数据,我要筛选出 20050606 - 20071016 的数据,那么,先如下转换数据类型:

s_date = datetime.datetime.strptime('20050606', '%Y%m%d').date()e_date = datetime.datetime.strptime('20071016', '%Y%m%d').date()

数据筛选

非常简单,一行代码就搞定了:

df = df[(df['tra_date'] >= s_date) & (df['tra_date'] <= e_date)]

注意事项

  • 多个筛选条件并存时,不能用 and 连接,需要用单个 & 符号。

  • s_date <= df['trade_date'] <= e_date 等同于 and

pandas提取某段时间范围数据的五种方法

import pandas as pd #读取文件df = pd.read_csv('./TianQi.csv') #获取九月份数据的几种方法#方法一  使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异df.set_index('日期',inplace=True)print(df['2019/9/1':'2019/9/30'].head())  #或者print(df.loc['2019/9/1':'2019/9/30',:]) '''打印:     最高温度 最低温度  天气  风向 风级 空气质量日期                  2019/9/1 33℃ 19℃ 多云~晴 西南风 2级  良2019/9/2 34℃ 20℃   晴  南风 2级  良2019/9/3 33℃ 20℃   晴 东南风 2级  良2019/9/7 34℃ 21℃   晴 西南风 2级  良2019/9/8 35℃ 22℃ 晴~多云 东北风 2级  良''' #方法二  利用列表生成式和startwith('2019/9')生成bool列表,缺点,比较麻烦。print(df.loc[[True if i.startswith('2019/9') else False for i in df.index.tolist()],:].head())'''打印:     最高温度 最低温度  天气  风向 风级 空气质量日期                  2019/9/4 32℃ 19℃   晴 东南风 2级  良2019/9/5 33℃ 20℃   晴 东南风 2级  良2019/9/6 33℃ 20℃   晴 东南风 1级  良2019/9/1 33℃ 19℃ 多云~晴 西南风 2级  良2019/9/2 34℃ 20℃   晴  南风 2级  良''' #方法三  利用pandas的str和startswith('2019/9')|contains('2019/9')。df1 = pd.read_csv('./TianQi.csv')print(df1[df1['日期'].str.startswith('2019/9')].head())'''打印:     日期 最高温度 最低温度  天气  风向 风级 空气质量243 2019/9/4 32℃ 19℃   晴 东南风 2级  良244 2019/9/5 33℃ 20℃   晴 东南风 2级  良245 2019/9/6 33℃ 20℃   晴 东南风 1级  良246 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级  良247 2019/9/2 34℃ 20℃   晴  南风 2级  良''' #方法四  讲日期转换成datetime类型df1['日期'] = pd.to_datetime(df1['日期'])df1.set_index('日期',inplace=True,drop=True)#print(df1['2019'])  #取2019年数据,或者df.loc['2019']print(df1['2019/09'].head())  ''' 取201909月数据,其他变形写法df['2019-9'] df['2019-09'] df['2019/9'] df.loc['2019-9',:] df.loc['2019-09',:] df.loc['2019/09',:] df.loc['2019/9',:]打印:      最高温度 最低温度  天气  风向 风级 空气质量日期                   2019-09-04 32℃ 19℃   晴 东南风 2级  良2019-09-05 33℃ 20℃   晴 东南风 2级  良2019-09-06 33℃ 20℃   晴 东南风 1级  良2019-09-01 33℃ 19℃ 多云~晴 西南风 2级  良2019-09-02 34℃ 20℃   晴  南风 2级  良'''#注意如果要获取某一天的数据,则必须使用切片,比如df['2019/9/1':'2019/9/1'] '''获取一段时间df1.truncate(after = '2019-9-01') # 返回 after 以前的数据df1.truncate(before = '2019-9-01') # 返回 before 以后的数据df1['20190901':'2019/9/10']''' #方法五  #读取文件时,通过parse_dates=['日期'],将日期转化为datetime类型,相当于 pd.to_datetime。同时可以使用index_col将那一列作为的行索引,相当有set_index。df2 = pd.read_csv('./TianQi.csv',parse_dates=['日期'])df2['年'] = df2['日期'].dt.yeardf2['月'] = df2['日期'].dt.monthqstr = "年=='2019' and 月=='9'"print(df2.query(qstr).head())'''打印:      日期 最高温度 最低温度  天气  风向 风级 空气质量   年 月243 2019-09-04 32℃ 19℃   晴 东南风 2级  良 2019 9244 2019-09-05 33℃ 20℃   晴 东南风 2级  良 2019 9245 2019-09-06 33℃ 20℃   晴 东南风 1级  良 2019 9246 2019-09-01 33℃ 19℃ 多云~晴 西南风 2级  良 2019 9247 2019-09-02 34℃ 20℃   晴  南风 2级  良 2019 9''' '''dt的其他常用属性和方法如下:df['日期'].dt.day  # 提取日期df['日期'].dt.year # 提取年份df['日期'].dt.hour # 提取小时df['日期'].dt.minute # 提取分钟df['日期'].dt.second # 提取秒df['日期'].dt.week # 一年中的第几周df['日期'].dt.weekday # 返回一周中的星期几,0代表星期一,6代表星期天df['日期'].dt.dayofyear # 返回一年的第几天df['日期'].dt.quarter # 得到每个日期分别是第几个季度。df['日期'].dt.is_month_start # 判断日期是否是每月的第一天df['日期'].dt.is_month_end # 判断日期是否是每月的最后一天df['日期'].dt.is_leap_year # 判断是否是闰年df['日期'].dt.month_name() # 返回月份的英文名称df['日期'].dt.to_period('Q') # M 表示月份,Q 表示季度,A 表示年度,D 表示按天df['日期'].dt.weekday_name # 返回星期几的英文 由于pandas版本问题,改变pandas版本在cmd中输入:pip install --upgrade pandas==0.25.3Series.dt.nORMalize() # 函数将给定系列对象中的时间转换为午夜。'''

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 如何在pandas中根据日期范围筛选数据

本文链接: https://www.lsjlt.com/news/246551.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在pandas中根据日期范围筛选数据
    如何在pandas中根据日期范围筛选数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。日期转换用来筛选的列是 date 类型,所以这里要把要筛选的日期范围从字符...
    99+
    2023-06-06
  • Excel如何根据日期进行筛选和排序
    在Excel中,可以使用筛选和排序功能来根据日期进行操作。下面是具体的步骤:筛选:1. 选择包含日期的列。2. 在“数据”选项卡的“...
    99+
    2023-09-16
    excel
  • Pandas中怎么按日期筛选、显示及统计数据
    小编给大家分享一下Pandas中怎么按日期筛选、显示及统计数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!运行环境为 windows系统,64位,python3...
    99+
    2023-06-04
  • vue如何通过日期筛选数据
    目录如何通过日期筛选数据vue简单数据筛选如何通过日期筛选数据 此片博客介绍的方法是通过请求后台数据给的状态,然后把自己选择的时间传过去实现筛选的,根据业务逻辑来参考吧! 下篇我们会...
    99+
    2022-11-13
  • 如何用PHP查询指定日期范围内的数据
    PHP是一种常用的服务端编程语言,常常用于实现网站后台的数据处理和交互。在很多网站中,需要根据日期来查询相关数据记录。本文将介绍如何使用PHP查询指定日期范围内的数据。一、连接数据库首先,我们需要连接数据库。可以使用PHP中的mysqli或...
    99+
    2023-05-14
    数据库 php
  • 如何在PHP中使用数据筛选函数
    PHP是一种流行的编程语言,常用于Web开发。无论是在开发哪个Web应用程序,数据筛选都是一个重要的任务。 从一个数据集中组合数据的过程需要使用数据筛选函数。在PHP中,有许多内置的函数可以帮助您筛选数据。本文将详细介绍如何使用这些函数,以...
    99+
    2023-05-19
    PHP编程 数据筛选函数 数据操作
  • BIRT中如何根据参数实现动态日期分组
    BIRT中如何根据参数实现动态日期分组,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。BIRT一般擅长处理规则一致的数据,若条件不一致的动态运算在报表中是很难实现...
    99+
    2023-06-03
  • 如何使用SQL语句在MySQL中查询和筛选数据?
    如何使用SQL语句在MySQL中查询和筛选数据?MySQL是一种常用的关系型数据库管理系统,它提供了强大的 SQL 查询语言,可以帮助我们方便地查询和筛选数据。本文将介绍如何使用 SQL 语句在 MySQL 中查询和筛选数据,包括使用 SE...
    99+
    2023-12-17
    MySQL SQL查询 数据筛选
  • 如何在 Pandas 的 SQL 查询样式中选择数据子集?
    简介在这篇文章中,我将向您展示如何使用 Pandas 通过 SQL 样式过滤来执行数据分析。大多数企业数据都存储在需要 SQL 来检索和操作的数据库中。例如,像 Oracle、IBM、Microsoft 这样的公司拥有自己的数据库和自己的 ...
    99+
    2023-10-22
  • 如何使用 Python 在 MySQL 数据库中存储和检索日期?
    要在 MySQL 数据库中插入日期,您的表中需要有一列类型为日期或日期时间的列。完成后,您需要将日期转换为字符串格式,然后再将其插入数据库。为此,您可以使用 datetime 模块的 strftime 格式化函数。示例from dateti...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作