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。 但是并不影响计算。


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



相关文章
|
2月前
|
索引 Python
Pandas学习笔记之时间处理
Pandas学习笔记之时间处理
|
5月前
|
机器学习/深度学习 存储 算法
Pandas中的get_dummies()函数实战应用详解
Pandas中的get_dummies()函数实战应用详解
146 1
|
存储 大数据 Python
Pandas 2.1发布了
2023年3月1日,Pandas 发布了2.0版本。6个月后(8月30日),更新了新的2.1版。让我们看看他有什么重要的更新。
133 1
|
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有没有优势。
265 0
Pandas 2.0正式版发布: Pandas 1.5,Polars,Pandas 2.0 速度对比测试
|
Python
python pandas时间操作函数
python pandas时间操作函数
112 0
|
机器学习/深度学习 关系型数据库 数据挖掘
Pandas 2.0 vs Polars:速度的全面对比
前几天的文章,我们已经简单的介绍过Pandas 和Polars的速度对比。刚刚发布的Pandas 2.0速度得到了显著的提升。但是本次测试发现NumPy数组上的一些基本操作仍然更快。并且Polars 0.17.0,也在上周发布,并且也提到了性能的改善,所以我们这里做一个更详细的关于速度方面的评测。
290 0
Pandas 2.0 vs Polars:速度的全面对比
|
数据挖掘 Linux 数据处理
Pandas时间数据处理与简单作图
前两天接着作业的兴致写了一篇pandas数据分析的文章,简要介绍了一下groupby这个函数的妙用,没想到居然能被推荐,还是有点小激动的。估计掘金的大家更喜欢技术性强一些的文章而非操作细节多的文章吧?今天我们再次暂停一期小白的实战专题,来看看pandas的时间数据如何处理。当然,如标题所述,我们会来一些作图操作来增加文章的趣味性——
Pandas时间数据处理与简单作图
Pandas 比较日期差异
Pandas 比较日期差异
Pandas 比较日期差异
|
数据格式 索引 Python
一文速学-Pandas中DataFrame转换为时间格式数据与处理
一文速学-Pandas中DataFrame转换为时间格式数据与处理
1747 0
一文速学-Pandas中DataFrame转换为时间格式数据与处理
|
数据采集 前端开发 数据可视化
20 个短小精悍的 pandas 骚操作
本次为大家整理了一个pandas骚操作操作的大集合,共20个功能,个个短小精悍,一次让你爱个够。系列内容,请看👉「pandas100个骚操作」话题。
20 个短小精悍的 pandas 骚操作