Python数据分析从入门到进阶:玩转日期型数据(含代码)

Python新手入门教程_教你怎么用Python做数据分析 学Python新手入门教程的同时认真看一下这篇文章,相信很多东西你会恍然大悟。 阅读详情

引言

在我们进行一些时间序列问题时,往往要对日期型数据进行分析处理,本章介绍一下如何使用python处理日期型数据

💮1. 将字符串转换成日期

# 导入相关库;
import pandas as pd 
import numpy as np

# 创建字符串
date_strings = np.array(['03-04-2005 11:35 PM',
                         '23-05-2010 12:01 AM',
                         '04-09-2009 09:09 PM'])

# 转换成datetime 类型的数据
[pd.to_datetime(date, format='%d-%m-%Y %I:%M %p') for date in date_strings]

[Timestamp('2005-04-03 23:35:00'),
 Timestamp('2010-05-23 00:01:00'),
 Timestamp('2009-09-04 21:09:00')]

# 我们还可以增加errors参数来处理错误
# 转换成datetime类型的数据
[pd.to_datetime(date, format='%d-%m-%Y %I:%M %p', errors = 'coerce') for date in date_strings]

[Timestamp('2005-04-03 23:35:00'),
 Timestamp('2010-05-23 00:01:00'),
 Timestamp('2009-09-04 21:09:00')]

当传入errors = 'coerce' 参数时,即使转换错误也不会报错,但是会将错误的值返回为Nan(缺失值)

🏵️2. 处理时区

一般而言,pandas的对象默认是没有时区的,不过我们也可以在创建对象时通过tz参数指定时区

import pandas as pd

# 创建一个dataframe
pd.Timestamp('2017-05-01 06:00:00', tz = 'Europe/London')

Timestamp('2017-05-01 06:00:00+0100', tz='Europe/London')

# 可以使用tz_locallize添加时区信息
data = pd.Timestamp('2017-05-01 06:00:00')

# 设置时区
data_in_london = data.tz_localize('Europe/London')

data_in_london

Timestamp('2017-05-01 06:00:00+0100', tz='Europe/London')

# 我们还可以使用tz_convert来转换时区

data_in_london.tz_convert('Asia/Chongqing')

Timestamp('2017-05-01 13:00:00+0800', tz='Asia/Chongqing')

# Series对象还可以对每一个元素应用tz_localiz和tz_convert
dates = pd.Series(pd.date_range('2002-02-02', periods=3, freq='M'))

# 设置时区
dates.dt.tz_localize('Asia/Chongqing')

0   2002-02-28 00:00:00+08:00
1   2002-03-31 00:00:00+08:00
2   2002-04-30 00:00:00+08:00
dtype: datetime64[ns, Asia/Chongqing]

🌹3. 选择日期和时间

dataframe = pd.DataFrame()

dataframe['date'] = pd.date_range('2001-01-01 01:00:00', periods=100000, freq='H')

删选两个日期之间的观察值, 用 & 来表示且的关系

dataframe[(dataframe['date']>'2002-01-01 01:00:00') & (dataframe['date']<='2002-1-1 04:00:00')]

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

date
87612002-01-01 02:00:00
87622002-01-01 03:00:00
87632002-01-01 04:00:00

另一种方法,将date这一列设为索引,然后用loc删选

dataframe = dataframe.set_index(dataframe['date'])

dataframe.loc['2002-1-1 01:00:00':'2002-1-1 04:00:00']

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

date
date
——
2002-01-01 01:00:002002-01-01 01:00:00
2002-01-01 02:00:002002-01-01 02:00:00
2002-01-01 03:00:002002-01-01 03:00:00
2002-01-01 04:00:002002-01-01 04:00:00

🌺4. 将数据切分成多个特征

df = pd.DataFrame()
df['date'] = pd.date_range('1/1/2001', periods=150, freq='w')

创建年月日时分的特征

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
df['hour'] = df['date'].dt.hour
df['minute'] = df['date'].dt.minute

df.head()

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

dateyearmonthdayhourminute
02001-01-0720011700
12001-01-14200111400
22001-01-21200112100
32001-01-28200112800
42001-02-0420012400

🌻5.计算两个日期之间的时间差

import pandas as pd
dataframe = pd.DataFrame()
dataframe['Arrived'] = [pd.Timestamp('01-01-2017'), pd.Timestamp('01-04-2017')]
dataframe['left'] = [pd.Timestamp('01-01-2017'), pd.Timestamp('01-06-2017')]

# 计算两个特征直接的时间间隔
dataframe['left'] - dataframe['Arrived']

0   0 days
1   2 days
dtype: timedelta64[ns]

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

【数据分析】基于Python的一次职位招聘数据分析(入门参考) 基于Python的一次职位招聘数据分析 1 Python数据分析常用的库和库函数 2 一次完整的数据分析过程 * * 画图 工作地点处理 工资计量单位统一 公司类型 行业类型 参考 配套资源下载 职位信息分析.html job_info.csv 1 Python数据分析常用的库和库函数 常用库 pandas numpy matplotlib (ps:以下函数只是给出了函数名,函数参数还有很多灵活的选择,详情见 PandasAPI介绍 ) 读取文件 pan 阅读详情

相关推荐

【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据

大家好,我是阿光。本专栏整理了《Pandas数据分析处理》,内包含了各种常见的数据处理,以及Pandas内置函数的使用方法,帮助我们快速便捷的处理表格数据。正在更新中~ ✨。

优快云 精品推荐 2万+

python insert into_python sql insert into报错

In[137]: tuplesOut[137]:[(Timestamp('2005-01-04 00:00:00'),0.18032084962653375,0.18032084962653375,0.2136968072480386),(Timestamp('2005-01-05 00:00:00'),0.1951611031697977,0.1951611031697977,0.2145052...

weixin_39980129的博客 736

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9908

Python处理日期方法大全、三十种方法

print(d)

Python热爱者的博客 8185

【无标题】EXCEL实现刷题

运用Excel开发的刷题工具,具有普遍实用性,可将WORD的试题自动导入并实现刷题。

weixin_44081794的博客 2970

龙芯3A5000开发板PMON升级UEFI固件实战指南

固件是计算机硬件与操作系统之间的关键桥梁,负责初始化硬件并引导系统启动。其工作原理是在上电后执行自检、加载引导程序,最终将控制权移交操作系统。在国产化平台中,采用标准化的UEFI固件具有重要技术价值,它能提供图形化配置界面、统一硬件驱动模型,并支持安全启动等现代特性,从而显著提升硬件兼容性与系统管理效率。这一技术广泛应用于PC、服务器及嵌入式设备,尤其在需要运行银河麒麟等主流操作系统的龙芯开发板场景中,将传统PMON固件升级至UEFI,能实现更流畅的系统安装与更稳定的运行体验。本文基于固件升级与UEFI引导

weixin_42664597的博客 561

python:这种写法 df[‘days‘] 和 df.days 这种写法 有啥不同

df[‘compound’] = compound 这种用法即:df是个字典 获取他的值(键-值) dict = {"compound": 123} >>> d["compound"] 123 df.compound df是个对象,compound是它的属性 获取其属性 d = {"compound": 123} d.compound ' Traceback (most recent call last): File "<stdin>", line 1, in <

weixin_51015047的博客 439

间充质干细胞衰老机制与抗衰老干预策略研究

干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩

weixin_33502772的博客 227

python 处理日期类型常用方法

python处理日期类型常用方法汇总 import os, sys, datetime, time #0、初始化一个string类型的日期 a_string_date = '2021-03-29' #1、string类型日期转 date类型 a_date = datetime.datetime(year = int(a_string_date[:4]), month = int(a_string_date[5:7]), day

Toby的博客 1184

USB2.0基础知识总结

目录 1、协议层: 1.1、域分类 1.2 、USB传输方式: 1、协议层: 域和包定义:包是一次传输的单位,每个包由多个域组成; USB中是按照LSB进行字节传输; 1.1、域分类 1.1.1: 同步域(SYNC field) 所有的包都开始于同步域,在低速和全速通信中SYNC field用7个0和1个1来表示。 由于USB2.0使用了NRZI编码(0用翻转来表示,1用不翻转表示),所以00000001就是上图那样。 ...

qq_32938605的博客 4408

C#量化交易的市场数据采集与分析:从0到1构建你的‘数据雷达’——对比5大神器,代码实战全解析!

数据是量化交易的‘氧气’,而好的数据采集与分析是你的‘呼吸机’!本文5大神器+代码实战,总有一款适合你!(本文代码均经过测试,但请根据实际需求调整!

java专栏 728

python中日期型数据的处理方法

python中日期型数据的处理主要涉及到pandas中的.to_datetime方法和datetime库里边的datetime.strptime函数,前者一般最series进行操作,后者一般对具体的字符串进行操作。 一.datetime.strptime函数 用于将一个日期字符串转成datetime日期格式便于后期处理,使用格式为datetime.strptime(date_string, format),其中date_string就是要转成日期的字符串,format根据date_str...

qq_39954916的博客 4310

Redis下载安装与配置(windows)

一、Redis下载 二、Redis安装 三、启动Redis临时服务并测试连接(可跳过) 四、Redis配置

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 7万+

Python 数据分析:日期型数据的玩转之道

日期型数据通常包括时间戳、时间间隔、日期范围等形式,对其灵活运用能为数据分析提供更多的维度和深度。将从 Python 中的主要库和模块开始,如datetimepandas等。# 获取当前时间from datetime import datetime # 获取当前时间 current_time = datetime . now() print(f"Current Time: {

涛哥聊Python 1137

ArXiv 2026 即插即用 | Transformer篇 | WeightFormer:告别二次复杂度!无注意力的线性时间 Transformer,泛化能力拉满

WeightFormer是一种创新的动态Transformer架构,其核心创新在于通过双动态算子(空间自适应动态卷积和双边激活动态线性)实现输入自适应的特征提取。该模块采用静态-动态权重融合机制和低秩预测技术,在仅增加5%参数量的情况下显著提升模型泛化能力。相比传统Transformer,WeightFormer在ImageNet-1K上提升2.3%精度,小样本任务提升12%,同时保持线性计算复杂度。模块可直接替换标准Transformer块,特别适合轻量级视觉任务,实现了精度与效率的平衡。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 128

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python机器学习从入门到高级:玩转日期型数据(含代码)

Python机器学习:日期型数据处理 🌸个人主页:JoJo的数据分析历险记 📝个人介绍:小编大四统计在读,目前保研到统计学top3高校继续攻读统计研究生 💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏 文章目录Python机器学习:日期型数据处理💮1. 将字符串转换成日期🏵️2. 处理时区🌹3. 选择日期和时间🌺4. 将数据切分成多个特征🌻5.计算两个日期之间的时间差 在我们进行一些时间序列问题时,往往要对日期型数据进行分析处理,本章介绍一下如何使用python处理日期型数据 💮1. 将字

阿里云专家博主、数据科学领域优质创作者、统计er在读 1964

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

这绝对是Python数据分析入门与进阶的权威指南!

学习Python数据分析是一个系统化的过程,以下是一个分步指南和建议,帮助你从入门到进阶:

Candyz7的博客 1511

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python入门:Python3日期和时间全面学习教程

Python入门:Python3日期和时间全面学习教程,该教程围绕Python3中time和calendar模块,系统讲解日期时间处理知识。先介绍核心概念,时间戳以1970年1月1日为起点计秒,存在时间范围限制,时间元组(struct_time)含9个时间字段;接着详解time模块,包括获取当前时间(元组与可读格式)、日期格式化(strftime与strptime)、时间戳转换、程序延时及CPU时间计算等功能与属性;然后阐述calendar模块,涵盖打印月/年历、闰年判断、月份信息获取等操作……

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 15万+

小白也能玩转Python数据分析(附视频教程资料)

小白也能玩转Python数据分析(附视频教程资料)

闲余知道 2141

26个数据分析案例——第三站:基于python的药店销售数据分析

目录26个数据分析案例——第三站:基于python的药店销售数据分析实验环境数据说明必备知识1、数据获取2、数据信息查看3、数据清洗4、数据变换5、数据过滤6、数据保存实验步骤第一步:加载数据并查看数据详情1、导入数据:需要用到Python中的xlrd包,代码如下所示。2、查看数据类型,代码如下所示。第二步:数据清洗1、选择子集:目的是选择需要分析的列,方法为切片法(loc),代码如下所示。2、列名重命名:把'购药时间'改为'销售时间’,代码如下所示。3、缺失数据处理,用dropna 法处理缺失值,处理前数

u014552259的博客 1万+

Python开发从入门到精通:数据分析库Pandas进阶

《Python开发从入门到精通》第19章聚焦Pandas库的高级应用,涵盖数据分析核心功能。主要内容包括:1)数据透视表创建与参数配置;2)数据分组聚合方法(单列/多列分组、自定义聚合函数);3)时间序列处理(创建、重采样、移动平均计算);4)数据可视化技巧(折线图、柱状图、散点图)。通过实例代码演示各功能实现,帮助读者掌握Pandas在数据分析中的进阶应用,提升数据处理效率和可视化呈现能力。本章重点在于数据透视表、分组聚合和时间序列分析等核心技能的实际应用。

编程世界如山海,探索不止。 3万+

【数据分析入门】Numpy进阶

本文为《数据分析入门》专栏中Numpy进阶一文,主要讲解透视、透视表、堆栈反堆栈、融合、迭代、高级索引、重复数据、数据分组、缺失值、合并数据、日期、可视化相关知识

東方緋想天 1846

掌握Python数据分析:从入门到精通

掌握Python数据分析:从入门到精通【文末送书-43】Python已成为数据科学领域最受欢迎的编程语言之一,其简洁的语法和强大的数据处理能力使其成为数据分析的首选工具。本文将从入门到精通的角度,介绍Python数据分析的基础知识、常用工具和技巧,帮助读者掌握数据分析的技能并提升应用能力。

一键难忘的博客 5787

【Python入门系列】第九篇:Python数据分析和处理

Python数据分析和处理是当今数据科学领域中的重要技能之一。随着大数据时代的到来,越来越多的组织和企业需要从海量数据中提取有价值的信息。Python作为一种功能强大且易于上手的编程语言,提供了丰富的数据分析和处理工具和库,如pandas、numpy、matplotlib等。本文将介绍Python数据分析和处理的基础知识和常用操作。

杰西笔记 1万+
上一篇: 深入浅出Python 描述符
下一篇: Python数据分析从入门到进阶:模型评估和选择(含详细代码)
Python_P叔
博客等级 码龄3年 5447粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值