【Pandas驯化-14】一文搞懂Pandas中的时间处理函数date_range、resample、shift技巧

news2025/1/17 14:02:54

【Pandas驯化-14】一文搞懂Pandas中的时间处理函数date_range、resample、shift技巧
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 相关内容文档获取 微信公众号
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

  • 🎯 1. 基本介绍
  • 💡 2. 使用方法
    • 2.1 date_range函数使用
    • 2.2 pd.resample函数使用
  • 🔍 3. 注意事项
  • 🔧 4. 总结

下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  如果要对时间序列相关的数据进行数据分析与挖掘,而时间做为一种特殊的数据格式,不同于字符串,整型的数据格式,但是它们之间又是有一定的联系,在介绍pandas时间处理的方法之前,首先介绍一下关于python的时间处理的相关知识以及常用的包:
  首先对于时间维度信息在进行数据分析以及特征工程的时候经常挖掘分析的时间维度信息如下:年、月、日、是否周末、是否节假日、一年中的第几周、一周中的第几天、距离节假日的时间距离、年月日结合相关业务操作的时间范围、针对业务特征日期的处理

  • 因此,对于上述时间维度的数据分析和挖掘,朝天椒将自己在时间维度上的一些处理骚手段总结如下:
  • python处理时间的常用包datetime
  • datetime数据格式为:datetime(year,month,day,hour,minute,second, microsecond), 然后可以通过相关的api得到一个时间戳的各个小字段。还有对于datetime类型的时间戳二者之间可以进行相互加,减等操作:

💡 2. 使用方法

2.1 date_range函数使用

  该函数主要参数有开始(start)、结束时间(end),多长时间范围periods,以及按什么频率(freq)方式进行时间移动,通过该函数得到的是一个pandas个数的datetime数据格式,因此可以直接使用datetime的相关属性函数对数据进行相关的操作。具体的使用例子如下:

import pandas as pd

# 生成日期范围
date_index = pd.date_range('2024-06-01', periods=5, freq='D')

print(date_index)

DatetimeIndex(['2024-06-01', '2024-06-02', '2024-06-03',
               '2024-06-04', '2024-06-05'],
              dtype='datetime64[ns]', freq='D')

# 默认按天进行移动,可以按月,年等,还可以具体多少天进行移动 
tmp = pd.date_range(start='2018-01-01', periods=10, frep='3M') 
tmp = tmp.strftime('%F').tolist()

2.2 pd.resample函数使用

  pd.resample():神奇的对时间进行采样的函数, 该函数除了采样功能外,还可以进行一些关于时间的统计, 主要有加、减、乘等操作, 相关于一种快速的对时间按年月日等进行分组操作, 介绍几个重要的参数:

  • 1.colsed:如果为left就是将时间区间分为多少个区间,每个区间都是左闭右开,如果为right则是左开右闭
  • 2.label:如果就是选用区间的哪边作为结果的索引值
  • 3.rule:按什么方式进行采样,’3D’:三天
  • 4.how:通过什么样的方式, 这个可以通过参数控制, 也可以通过属性函数的写法,特别注意的一个是, 金融中有个函数可以对其进行快速的计算最大、最小值等’ohlc’
  • 5.fill_method:对缺失值进行填充的方法, ‘bfill’, 等
import pandas as pd
import numpy as np

# 创建一个示例 DataFrame
df = pd.DataFrame({'values': np.arange(12)}, 
                   index=pd.date_range('2018-01-01', periods=12, freq='D'))

df_time = df.resample('3D', closed='left').sum()
print("每3天汇总一次的结果(closed='left'):")
print(df_time)

            values
2018-01-01      3
2018-01-04      9
2018-01-07     15
...
#  升采样:按6小时填充
df_time2 = df.resample('3D', closed='right').sum()
print("\n每3天汇总一次的结果(closed='right'):")
print(df_time2)
            values
2018-01-02      6
2018-01-05     12
2018-01-08     9
...
# 升采样:按6小时填充
df = pd.DataFrame({'values': np.arange(2)}, 
                   index=pd.date_range('2018-01-01', periods=2, freq='D'))
df_time = df.resample('6H').asfreq()
print("\n按6小时升采样(使用 asfreq)的结果:")
print(df_time)
             values
2018-01-01  0.0
2018-01-01  1.0  # 第二行是原始数据
...           ...

🔍 3. 注意事项

  对上述的各个函数在使用的过程中需要注意的一些事项,不然可能会出现error,具体主要为:

  • resample 方法的 closed 参数控制了如何定义分组的边界,‘left’ 表示闭左开右,‘right’ 表示闭右开左。
  • asfreq 方法用于将时间序列升采样到指定的频率,但不会填充缺失值。
  • ffill 方法用于向前填充缺失值,bfill 方法用于向后填充。

🔧 4. 总结

  本文通过实际代码示例介绍了 Pandas 中的 resample 方法在时间序列数据降采样和升采样中的应用。我们学习了如何使用不同的参数来控制重采样的行为,包括 closed、asfreq、ffill 等。这些技巧对于处理不同频率的时间序列数据非常有用。希望这篇博客能够帮助你更好地理解并应用这些时间序列处理功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1853403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PHP米表域名出售管理源码带后台

源码介绍 html5米表源码PHP域名销售程序安装方法: 本站已测试,各项功能正常,功能易用,不复杂,非常适合个人米表使用 1、所有文件传至网站目录 2、浏览器执行http://你的访问网址/install 3、输入mysql帐号及密码信息,提交安装 源码截图 源码下载 …

华为od-C卷200分题目3 - 两个字符串间的最短路径问题

华为od-C卷200分题目3 - 两个字符串间的最短路径问题 题目描述 给定两个字符串,分别为字符串A与字符串B。 例如A字符串为ABCABBA,B字符串为CBABAC可以得到下图m*n的二维数组,定义原点为(0, 0),终点为(m, n),水平与垂…

【Android逆向】小白也能学会的一个小时破解某猫社区VIP会员

第二步:使用 dex2jar 将 classes.dex 转成 jar 文件 cmd到dex2jar文件夹目录,执行 d2j-dex2jar D://xxx/xxx/classes.dex 得到 jar 文件 静态分析 拿到源码后,首先我们需要找到应用的限制点,绕过App里面的判断。 然后分析源码&…

520. 检测大写字母

题目 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 “USA” 。单词中所有字母都不是大写,比如 “leetcode” 。如果单词不只含有一个字母,只有首字母大写,比如 “Go…

React学习(二)——状态(数据)与状态修改

useState 在React中,useState 是一个非常重要的Hook,它允许你在函数组件中添加“状态”(state)。在传统的React类组件中,我们使用this.state来管理和更新组件的状态。然而,在函数组件中,由于它们…

【Docker】Docker下载安装_使用阿里云加速配置

1、下载安装 1.1前提条件 安装环境: 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位…

管理不到位,活该执行力差?狠抓这4点要素,强化执行力

管理不到位,活该执行力差?狠抓这4点要素,强化执行力 一:强化制度管理 1、权责分明,追责管理 要知道,规章制度其实就是一种“契约”。 在制定制度和规则的时候,民主一点,征求团队成员…

基于格网的边缘点检测(python)

1、背景介绍 前文已介绍对点云进行格网处理,可以计算平面点云面积、格网拓扑关系构建,相关博客如下: (1)点云格网过程可视化(C PCL)-CSDN博客 (2)平面点云格网过程及可…

一小时搞定Git(含盖IDEA使用)

文章目录 1. git基本概念1.1版本控制1.1.1 版本控制软件 2. 命令的使用2.1 Linux命令2.2 git基础指令2.2.1 设置用户2.2.2 初始化本地仓库2.2.3 查看本地仓库状态2.2.4 添加暂存区域2.2.5 提交本地库2.2.6 切换版本 2.3 分支操作2.3.1 分支基本操作2.3.2 合并操作2.3.4 分支开发…

C语言| 数组的插入

在下标为index的位置插入一个数字 1 定义数组a&#xff0c;数组b存放插入元素后的数组&#xff0c;下标index 值num 循环变量i 2 输入要插入的位置下标和数值 3 for循环 嵌套if多层语句 if数组的最大下标i < index,说明插入元素的位置在数组中不存在&#xff0c;系统随机分…

Python使用tkinter制作无边框透明时钟源码讲解(tkinter如何实现窗口无边框透明)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 导入必要的库📝 创建主窗口🎯 去掉窗口边框🎯 设置窗口透明度🎯 允许窗口背景透明🎯 设置窗口背景颜色为透明🎯 设置窗口位置🎯 创建用于显示时间的标签📝 更新时间函数📝 使窗口可移动📝…

winRar去广告记录

效果&#xff1a;双击winRar.exe&#xff0c;不会弹出广告窗口&#xff0c;但会弹出使用时间许可警告&#xff0c;效果不是很完美。 工具&#xff1a;everything.exe&#xff08;非必须&#xff09;、sublime text&#xff08;非必须&#xff09;、spyxx.exe&#xff08;非必须…

python-今年第几天

[题目描述] 定义一个结构体变量&#xff08;包括年、月、日&#xff09;。 计算该日在本年中是第几天&#xff0c;注意闰年问题。输入格式&#xff1a; 年 月 日。输出格式&#xff1a; 当年第几天。样例输入 2000 12 31样例输出 366 数据范围 对于100%的数据&#xff0c;保…

啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码

对于同时使用Windows和Mac操作系统的用户而言&#xff0c;选择一个既能确保数据互通又能满足大容量存储需求的移动硬盘格式尤为重要。下面我们来看看啥移动硬盘格式能更好兼容Windows和Mac系统&#xff0c;NTFS格式苹果电脑不能修改的相关内容。 一、啥移动硬盘格式能更好兼容…

开源项目推荐-vue2+element+axios 个人财务管理系统

文章目录 financialmanagement项目简介项目特色项目预览卫星的实现方式&#xff1a;首次进入卫星效果的实现方式&#xff1a;卫星跟随鼠标滑动的随机效果实现方式&#xff1a;环境准备项目启动项目部署项目地址 financialmanagement 项目简介 vue2elementaxios 个人财务管理系…

WordPress主题仿虎嗅网/雷锋网自媒体主题(两套打包)

主题介绍 这两款wordpress主题是精仿虎嗅网和雷锋网的&#xff0c;这两款主题应该是没有多大BUG&#xff0c;同时这两款主题目前跟现在的虎嗅、雷锋两个网站看上去并没有多大区别&#xff0c;唯一美中不足的就是不支持PHP7.0以上。经常逛虎嗅网与雷锋网的同志应该是喜欢这两款…

CSS基础学习记录(5)

目录 1、CSS语法 2、实例 3、CSS注释 4、id 选择器 5、class 类选择器 6、标签选择器 7、内联选择器 1、CSS语法 CSS 规则由两个主要的部分构成&#xff1a;选择器&#xff0c;以及一条或多条声明: 选择器&#xff08;Selector&#xff09;通常是您需要改变样式的 HTML …

组合数学、圆排列、离散数学多重集合笔记

自用 如果能帮到您&#xff0c;那也值得高兴 知识点 离散数学经典题目 多重集合组合 补充容斥原理公式 隔板法题目 全排列题目&#xff1a;

找不到msvcr120.dll怎么办,msvcr120.dll丢失的多种解决方法

msvcr120.dll是微软Visual C 2013的可再发行组件包中的一个文件&#xff0c;它是许多程序运行所必需的。这个文件包含了Visual C库&#xff0c;这些库为使用C编写的软件提供支持。如果你的电脑中缺少msvcr120.dll文件&#xff0c;那么依赖这个文件运行的应用程序可能无法启动或…

【Hadoop学习笔记】认识Hadoop

认识Hadoop 从网上找的课程做的笔记&#xff0c;有些图是自己理解画的&#xff0c;可能不正确&#xff0c;可以作为参考&#xff0c;有疑问的地方请直接指出&#xff0c;共同交流。 Hadoop是由Apache基金会开发的一个分布式系统基础架构&#xff0c;主要解决海量数据的存储和海…