【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理

news2025/4/3 1:37:25
标题 详情
作者简介 愚公搬代码
头衔 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
博客内容 .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎 👍点赞、✍评论、⭐收藏

文章目录

  • 🚀前言
  • 🚀一、DataFrame日期数据处理
    • 🔎1.📅 Pandas日期数据处理:to_datetime方法详解
      • 🦋1.1 日期格式统一的重要性
      • 🦋1.2 to_datetime核心功能
      • 🦋1.3 典型应用场景
        • ☀️1.3.1 场景1:单列格式转换
        • ☀️1.3.2 多列组合日期
      • 🦋1.4 高级使用技巧
        • ☀️1.4.1 处理异常数据
        • ☀️1.4.2 自定义格式解析
        • ☀️1.4.3 时间戳转换
      • 🦋1.5 注意事项
      • 🦋1.5 完整参数说明表
    • 🔎2.📅 Pandas dt对象深度解析
      • 🦋2.1 dt对象核心功能
      • 🦋2.2 常用属性方法速查表
      • 🦋2.3 典型应用场景
        • ☀️2.3.1 场景1:基础日期元素提取
        • ☀️2.3.2 场景2:高级日期特征生成
        • ☀️2.3.3 输出结果示例
      • 🦋2.4 高级应用技巧
        • ☀️2.4.1 多条件日期筛选
        • ☀️2.4.2 自定义日期特征
        • ☀️2.4.3 时间序列分析
      • 🦋2.5 注意事项
      • 🦋2.6 完整方法清单
    • 🔎3.📅 Pandas日期区间数据筛选指南
      • 🦋3.1 核心方法
      • 🦋3.2 操作流程
        • ☀️3.2.1 步骤1:数据预处理
        • ☀️3.2.2 设置日期索引
      • 🦋3.3 筛选方式对比
      • 🦋3.4 实战案例演示
      • 🦋3.5 注意事项
      • 🦋3.6 高级扩展
        • ☀️3.6.1 时间精度控制
        • ☀️3.6.2 复合条件筛选
        • ☀️3.6.3 频率重采样
      • 🦋3.7 完整代码参考
    • 🔎4.📊 Pandas时间序列统计与展示全攻略
      • 🦋4.1 核心方法对比
      • 🦋4.2 数据预处理关键步骤
        • ☀️4.2.1 日期索引设置
        • ☀️4.2.2 验证索引类型
      • 🦋4.3 频率规则速查表
      • 🦋4.4 完整代码参考
      • 🦋4.5 注意事项


🚀前言

在数据分析和处理的过程中,日期数据往往扮演着至关重要的角色。无论是时间序列分析、数据可视化,还是机器学习模型的构建,正确处理日期数据都是确保分析结果准确性的基础。在Python的Pandas库中,DataFrame提供了强大的工具和方法,使得日期数据的处理变得高效而便捷。

本篇文章将深入探讨如何在DataFrame中处理日期数据,包括日期的解析、格式化、时间戳的转换、日期范围的生成以及缺失数据的处理等关键技巧。我们将通过实例演示每个操作的具体应用,帮助你深入理解如何利用Pandas轻松应对各种日期处理需求。

🚀一、DataFrame日期数据处理

🔎1.📅 Pandas日期数据处理:to_datetime方法详解

🦋1.1 日期格式统一的重要性

  • 常见问题:同一日期存在多种表达格式
  • 解决方案:pandas.to_datetime() 方法可实现批量日期格式转换

常见日期格式示例

在这里插入图片描述

🦋1.2 to_datetime核心功能

方法语法

pandas.to_datetime(
    arg,
    errors='ignore',
    dayfirst=False,
    yearfirst=False,
    utc=None,
    box=True,
    format=None,
    exact=True,
    unit=None,
    infer_datetime_format=False,
    origin='unix',
    cache=False
)

参数详解

参数 类型 默认值 说明
arg 多种 - 输入数据(字符串、数组、Series)
errors str ‘ignore’ 错误处理策略:
- ignore:保留原值
- raise:抛出异常
- coerce:转为NaT
dayfirst bool False 优先解析日为第一位(如20/01/2020→2020-01-20)
yearfirst bool False 优先解析年为第一位(如10/11/12→2010-11-12)
format str None 自定义格式字符串(如%Y-%m-%d
unit str None 时间单位(D/s/ms/us/ns),用于解析时间戳
infer_datetime_format bool False 自动推断日期格式

🦋1.3 典型应用场景

☀️1.3.1 场景1:单列格式转换
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
df=pd.DataFrame({
   '原日期':['14-Feb-20', '02/14/2020', '2020.02.14', '2020/02/14','20200214']})
df['转换后的日期']=pd.to_datetime(df['原日期'])
print(df)

输出结果:
在这里插入图片描述

☀️1.3.2 多列组合日期
import pandas as pd
#解决数据输出时列名不对齐的问题
pd.set_option('display.unicode.east_asian_width', True)
df = pd.DataFrame({
   'year': [2018, 2019,2020],
                   'month': [1, 3,2],
                   'day': [4, 5,14],
                   'hour':[13,8,2],
                   'minute':[23,12,14],
                   'second':[2,4,0]})
df['组合后的日期']=pd.to_datetime(df)
print(df)

输出结果:
在这里插入图片描述

🦋1.4 高级使用技巧

☀️1.4.1 处理异常数据
# 包含非法日期的数据转换
mixed_dates = ['2023-02-30', 'invalid_date', '202

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

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

相关文章

使用ChatGPT-Deep Reaserch两步给出文献综述!

文献综述是学术论文写作中不可或缺的一部分,它不仅是对已有研究的梳理和总结,更是为后续研究奠定理论基础的关键步骤。通过文献综述研究者能够全面了解当前研究领域的现状、主要观点和研究方法,从而找到自己研究的切入点和创新点。这一过程需…

从0开始的操作系统手搓教程14——进一步完成中断子系统

目录 所以,如何查看我们的IDT呢 改进我们的中断处理hook 对8253编程,提升系统的频率 导论 控制字说明 说一下每个方式——概论 说一说计数器如何进行计时 方式0 方式1 方式2 方式3 方式4 方式5 回到问题,我们如何设置单次触发冲…

Educational Codeforces Round 174 (Rated for Div. 2)

Problem - B - Codeforces 之前没思路,我看了看答案。 思路不就来了: 简而言之,BFS那样遍历周围(上下左右均一次),如果有同色,就把这部分相邻的隔开,可以得到两块陌生人集合&#x…

微服务即时通信系统---(七)文件管理子服务

目录 功能设计 模块划分 业务接口/功能示意图 服务实现流程 服务代码实现 封装文件操作模块(utils.hpp) 获取唯一标识ID 文件读操作 文件写操作 编写proto文件 文件元信息 文件管理proto 单文件上传 多文件上传 单文件下载 多文件下载 RPC调用 服务端创建子…

mosfet的驱动设计-开关损耗

目录 1.开关时的DS损耗 2.导通损耗 3.截止损耗 4.驱动损耗 mos管的损耗主要有开关损耗和导通损耗两部分,开关损耗包括mos管开通是消耗的能量和在mos在线性区产生的损耗。导通损耗是由mos的导通电阻电阻消耗的能量。 mos的实际模型 我们先来感性的…

萌新学 Python 之 with 文件操作语句

with 语句用于资源管理,避免资源泄露,对文件操作时,不管文件是否有异常,都会自动清理和关闭 with 语句的格式: with open(文件路径, mode模式, encodingutf-8) as file_obj: # as 取别名print(对文件进行操作&…

C# Unity 唐老狮 No.2 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站:About FFmpeg 1 库介绍 (1)libavutil是一个包含简化编程函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 (2)libavcodec是一个包含音频/视频编解码器的解码器和编…

单片机中的flah和RAM

片机的 Flash 和 RAM 是两种关键的内存类型,分别用于存储程序代码和运行时数据。 Flash 存储器 用途:用于存储程序代码(如固件)和常量数据(如查找表、字符串等)。 特点: 非易失性:断…

【Pytest】setup和teardown的四个级别

文章目录 1.setup和teardown简介2.模块级别的 setup 和 teardown3.函数级别的 setup 和 teardown4.方法级别的 setup 和 teardown5.类级别的 setup 和 teardown 1.setup和teardown简介 在 pytest 中,setup 和 teardown 用于在测试用例执行前后执行一些准备和清理操…

单细胞marker基因表达密度图-(还有一个包装函数)

有小伙伴说想要做单细胞marker基因表达密度图,我一想,好像之前是做过的(单细胞marker基因可视化的补充---密度图与等高线图)。但是他又说没有文献中的效果。后来我一看,是因为着色的问题。其实用Nebulosa包&#xff08…

记忆化搜索与动态规划:原理、实现与比较

记忆化搜索和动态规划是解决优化问题的两种重要方法,尤其在处理具有重叠子问题和最优子结构性质的问题时非常有效。 目录 1. 记忆化搜索(Memoization) 定义: 实现步骤: 示例代码(斐波那契数列&#xff0…

架构师面试(九):缓存一致性

问题 关于【数据库和缓存】一致性,下面哪几项是在线上生产环境中相对合理的处理方式? A. 对于查询操作,先查缓存,如果为空则查 DB,然后将数据带入缓存; B. 对于插入操作,只写 DB 即可&#…

Spring Boot集成Spring Ai框架【详解 搭建Spring Ai项目,以及简单的ai大模型智能体应用,附有图文+示例代码】

文章目录 一.Spring Ai介绍1.0 认识Spring Ai1.1 特征1.1 大模型专业名字介绍1.1.1 RAG(检索增强生成)RAG 的基本原理RAG 的关键技术RAG 的优势RAG 的应用场景 1.1.2 fine-tuning(微调)1.1.3 function-call(函数调用) 1.2 创建简单的Spring Ai项目 二.Spring Ai简单的智能应用2…

OpenHarmony启动系统-U-Boot简介和源码下载与编译

OpenHarmony系统启动流程简述 设备上电后,OpenHarmony系统大致经历以下3个阶段: 1.BootRom代码引导加载UBoot; 2.UBoot启动初始化硬件资源,引导并加载系统内核(Linux内核); 3.Kernel(LiteOs,Linux内核)启动、加载驱动…

Metal 学习笔记六:坐标空间

要在网格上轻松找到一个点,您需要一个坐标系。例如,如果网格恰好是您的 iPhone 15 屏幕,则中心点可能是 x:197、y:426。但是,该点可能会有所不同,具体取决于它所处的空间。 在上一章中&#xf…

Java测试框架Mockito快速入门

Mockito结合TestNG快速入门 什么是Mockito Mockito 是一个专门用于 Java 的强大测试框架,主要用来创建和管理模拟对象,辅助开发者进行单元测试,具有以下特点和功能: 创建模拟对象:能通过简洁的语法创建类或接口的模…

LabVIEW 无法播放 AVI 视频的编解码器解决方案

用户在 LabVIEW 中使用示例程序 Read AVI File.vi(路径: 📌 C:\Program Files (x86)\National Instruments\LabVIEW 2019\examples\Vision\Files\Read AVI File.vi)时发现: ✅ LabVIEW 自带的 AVI 视频可正常播放 这是…

AI编程界的集大成者——通义灵码AI程序员

一、引言 随着软件行业的快速发展和技术的进步,人工智能(AI)正在成为软件开发领域的一个重要组成部分。近年来,越来越多的AI辅助工具被引入到开发流程中,旨在提高效率、减少错误并加速创新。在这样的背景下&#xff0…

第三十三:6.3. 【mitt】 任意组件通讯

概述:与消息订阅与发布(pubsub)功能类似,可以实现任意组件间通信。 // 引入mitt import mitt from "mitt";// 创建emitter const emitter mitt()/*// 绑定事件emitter.on(abc,(value)>{console.log(abc事件被触发,…