pandas后几行_一文带你搞懂pandas中的时间处理(详细)

本文介绍了pandas中的时间处理,包括Timestamp类的使用,如何将字符串转换为日期格式,Timestamp的限制,以及如何提取时间信息。此外,还提到了DatetimeIndex、PeriodIndex、Timedelta类在时间序列分析中的应用。
摘要由CSDN通过智能技术生成

目录

1、pandas中6个时间相关的类

在多数情况下,对时间类型数据进行分析的前提就是将原本为字符串的时间转换为标准时间类型。

pandas继承了NumPy库和datetime库的时间相关模块,提供了6种时间相关的类。

2、Timestamp类

其中Timestamp作为时间类中最基础的,也是最为常用的。在多数情况下,时间相关的字符串都会转换成为Timestamp。pandas提供了to_datetime()函数,能够实现这一目标。

值得注意的是,Timestamp类型时间是有限制的。

1)查看时间列,是str字符串列,还是时间格式列

import pandas as pd

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'].head()

type(df['lock_time'][0])

pd.to_datetime(df['lock_time']).head()

结果如下:

2)使用pd.to_datetime()将字符串,转换为日期格式

import pandas as pd

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'] = pd.to_datetime(df['lock_time'])

df['lock_time'].head()

结果如下:

3)Timestamp类只能表示1677年-2262年的时间

pd.Timestamp.min

pd.Timestamp.max

结果如下:

4)Timestamp类常用属性

在多数涉及时间相关的数据处理,统计分析的过程中,需要提取时间中的年份,月份等数据。使用对应的Timestamp类属性就能够实现这一目的。

结合Python列表推导式,可以实现对DataFrame某一列时间信息数据的提取。

操作如下:

import pandas as pd

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'] = pd.to_datetime(df['lock_time'])

df["年"] = df['lock_time'].apply(lambda x:x.year)

df["年"].head()

结果如下:

5)利用strftime()方法提取指定格式日期

df[‘lock_time’][0]

df[‘lock_time’][0].strftime("%Y-%m")

结果如下:

3、DatetimeIndex与PeriodIndex函数:类似于to_datetime()函数

除了将数据字原始DataFrame中直接转换为Timestamp格式外,还可以将数据单独提取出来将其转换为DatetimeIndex或者PeriodIndex。

转换为PeriodIndex的时候需要注意,必须通过freq参数指定时间间隔,常用的时间间隔有Y为年,M为月,D为日,H为小时,T为分钟,S为秒。两个函数可以用来转换数据还可以用来创建时间序列数据,其参数非常类似。

import pandas as pd

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'] = pd.DatetimeIndex(df['lock_time'])

df['lock_time'][0]

---------------------------------------------------------------

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'] = pd.PeriodIndex(df['lock_time'],freq="S")

df['lock_time'][0]

结果如下:

4、Timedelta类

Timedelta是时间相关的类中的一个异类,不仅能够使用正数,还能够使用负数表示单位时间,例如1秒,2分钟,3小时等。使用Timedelta类,配合常规的时间相关类能够轻松实现时间的算术运算。目前Timedelta函数中时间周期中没有年和月。

1)日期前移、后移一天

import pandas as pd

df = pd.read_csv(r"E:\电脑视频录制软件\视频下载安装路径\Python数据分析与应用人邮版\data\meal_order_info.csv",

engine="python",

encoding="gbk")

df['lock_time'] = pd.to_datetime(df['lock_time'])

df['lock_time'][0]

# 后移一天

df['lock_time'][0] + pd.Timedelta(days=1)

# 前移一天

df['lock_time'][0] + pd.Timedelta(days=-1)

结果如下:

2)两个时间做差

使用Timedelta,可以很轻松地实现在某个时间上加减一段时间。除了使用Timedelta实现时间的平移外,还能够直接对两个时间序列进行相减,从而得出一个Timedelta。

df['lock_time'][0]

pd.to_datetime("2020-3-13") - df['lock_time'][0]

a = pd.to_datetime("2020-3-13") - df['lock_time'][0]

a.days

结果如下:

综上所述:上述的6个方法,只要将str转换为日期格式后,都可以统一使用如下的【Timestamp类的常用属性】,进行提取年、提取月 等操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值