Pandas时间处理

简介: Pandas时间处理

DataFrame时间处理


示例数据

image.png


将字符串列转化成时间序列

有时从 csv 或 xlsx 文件中读取的时间,是字符串(Object)类型,这时就需要将其转化成 datetime 类型,方便后续对时间的处理。

pd.to_datetime(df['datetime'])
复制代码


将时间列作为索引

对于大部分时间序列数据,我们都可以将该列作为索引,来最大的利用时间。这里 drop=False 选择不删除 datetime 列。

df.set_index('datetime', drop=False)
复制代码

image.png


通过索引获取 1月 的数据,这里显示前五行。

df.loc['2021-1'].head()
复制代码

image.png

通过索引获取 1~3月 的数据。

df.loc['2021-1':'2021-3'].info()
复制代码

image.png


获取时间的各个属性

这里给出一般需求中可能会用到的属性,同时给出各个方法的实例。

常见属性 描述
date 获取日期
time 获取时间
year 获取年份
month 获取月份
day 获取天
hour 获取小时
minute 获取分钟
second 获取秒
dayofyear 数据处于一年中的第几天
weekofyear 数据处于一年中的第几周(新版使用 isocalendar().week)
weekday 数据处于一周中的第几天(数字 周一为0)
day_name() 数据处于一周中的第几天(英文 Monday)
quarter 数据处于一年中的第几季度
is_leap_year 是否为闰年


这里随便选第 100 行的日期做示例,各个属性的结果均以注释的形式展示。


df['datetime'].dt.date[100]
# datetime.date(2021, 4, 11)
df['datetime'].dt.time[100]
# datetime.time(11, 50, 58, 995000)
df['datetime'].dt.year[100]
# 2021
df['datetime'].dt.month[100]
# 4
df['datetime'].dt.day[100]
# 11
df['datetime'].dt.hour[100]
# 11
df['datetime'].dt.minute[100]
# 50
df['datetime'].dt.second[100]
# 58
df['datetime'].dt.dayofyear[100]
# 101
df['datetime'].dt.isocalendar().week[100]
# 14
df['datetime'].dt.weekday[100]
# 6
df['datetime'].dt.day_name()[100]
# 'Sunday'
df['datetime'].dt.quarter[100]
# 2
df['datetime'].dt.is_leap_year[100]
# False
复制代码


重采样 resample()

重采样分为 降采样升采样 两种。

降采样指的是采样的时间频率低于原时间序列的时间频率,同时来讲就是一个聚合操作。看示例,下面获取各季度的 count 列平均值。Q 代表 quarter 表示按季度采样。

df.resample('Q',on='datetime')["count"].mean()
复制代码

image.png

注意:此时的输出的最大时间为06-30, 并不是实际数据中的 05-31。 但是并不影响计算。


升采样与降采样相反,指的是采样的时间频率高于原时间序列的时间频率,相当于获取更细纬度的时间数据,但这样往往会造成数据中存在大量空值,实际用的不多,这里就不展开讲解了。



相关文章
|
7月前
|
存储 大数据 Python
Pandas 2.1发布了
2023年3月1日,Pandas 发布了2.0版本。6个月后(8月30日),更新了新的2.1版。让我们看看他有什么重要的更新。
94 1
|
10月前
|
Python
python pandas时间操作函数
python pandas时间操作函数
|
Rust 分布式计算 安全
Pandas 2.0正式版发布: Pandas 1.5,Polars,Pandas 2.0 速度对比测试
Pandas 2.0正式版在4月3日已经发布了,以后我们pip install默认安装的就是2.0版了,Polars 是最近比较火的一个DataFrame 库,最近在kaggle上经常使用,所以这里我们将对比下 Pandas 1.5,Polars,Pandas 2.0 。看看在速度上 Pandas 2.0有没有优势。
229 0
Pandas 2.0正式版发布: Pandas 1.5,Polars,Pandas 2.0 速度对比测试
Pandas 比较日期差异
Pandas 比较日期差异
Pandas 比较日期差异
|
数据挖掘 Linux 数据处理
Pandas时间数据处理与简单作图
前两天接着作业的兴致写了一篇pandas数据分析的文章,简要介绍了一下groupby这个函数的妙用,没想到居然能被推荐,还是有点小激动的。估计掘金的大家更喜欢技术性强一些的文章而非操作细节多的文章吧?今天我们再次暂停一期小白的实战专题,来看看pandas的时间数据如何处理。当然,如标题所述,我们会来一些作图操作来增加文章的趣味性——
Pandas时间数据处理与简单作图
|
数据格式 索引 Python
一文速学-Pandas中DataFrame转换为时间格式数据与处理
一文速学-Pandas中DataFrame转换为时间格式数据与处理
1616 0
一文速学-Pandas中DataFrame转换为时间格式数据与处理
|
数据采集 数据挖掘 定位技术
用Pandas做数据清洗,我一般都这么干……
作为一名数据分析师,每天都在完成各种数据分析需求,其中数据清洗是必不可少的一个步骤。一般而言,当提及数据清洗时,其实是主要包括了缺失值处理、重复值处理和异常值处理三类操作,本文即围绕这这三个方面介绍一下个人的一些习惯操作。
200 0
用Pandas做数据清洗,我一般都这么干……
|
数据挖掘 数据处理 数据格式
Pandas 数据处理 | Datetime 时间模块在 Pandas 中的使用
Datatime 作为 Python 中的时间模块类型,处理时间有关数据是非常方便的, Pandas 作为数据分析程序包同样也支持 DataTime 数据机制
Pandas 数据处理 | Datetime 时间模块在 Pandas 中的使用
|
API C语言 索引
最近,又发现了Pandas中三个好用的函数
对Pandas投入了很多精力,自认掌握的还算扎实,期间也总结分享了很多Pandas相关技巧和心得(点击上方“Pandas”标签可以查看系列文章)。近日,在github中查看一些他人提交的代码时,发现了Pandas中这三个函数,在特定场景中着实好用,遂成此文以作分享。
158 0
最近,又发现了Pandas中三个好用的函数
|
API 数据处理 Python
Pandas用到今天,没成想竟忽略了这个函数
Pandas素以API丰富著称,个人也是常常沉醉于其中的各种骚操作而不能自拔(好吧,有些言重了)。近日,发现了一个前期一直忽略了的函数,仔细探索之下,发现竟然还有一些好用的功能,这个函数就是——transform。
93 0
Pandas用到今天,没成想竟忽略了这个函数