Pandas 改变日期
在本文中,我们将介绍如何使用Pandas库构建日期对象并进行日期计算和格式化。
阅读更多:Pandas 教程
Pandas 处理日期对象
Pandas有两种日期对象:Timestamp和DatetimeIndex。Timestamp表示一个日期和时间,而DatetimeIndex是由Timestamp构成的序列。可以使用多种方式构建Timestamp对象。
首先,我们可以使用Pandas自带的to_datetime()函数将字符串转化为日期对象:
import pandas as pd
date_str = '2022-01-01'
date_obj = pd.to_datetime(date_str)
print(date_obj)
输出:
2022-01-01 00:00:00
我们还可以使用pd.Timestamp()函数构建一个Timestamp对象:
date_obj = pd.Timestamp(2022, 1, 1)
print(date_obj)
输出:
2022-01-01 00:00:00
最后,我们可以使用pd.date_range()函数生成一组日期序列:
dates = pd.date_range(start='2022-01-01', end='2022-01-07', freq='D')
print(dates)
输出:
DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
'2022-01-05', '2022-01-06', '2022-01-07'],
dtype='datetime64[ns]', freq='D')
Pandas 的日期计算
Pandas提供了许多方便的函数来执行日期计算。下面列出了一些常用的日期计算函数:
datetime.date():从Timestamp对象中获取日期部分。datetime.time():从Timestamp对象中获取时间部分。datetime.dayofweek:获取星期几。datetime.dayofyear:获取一年中的第几天。datetime.days_in_month():获取一个月中的天数。datetime.month_name():获取月份名称。datetime.to_period():将Timestamp对象转化为时间段。datetime.round():将时间取整到指定精度。datetime.shift():将时间对象移动一段时间。
下面是一些实例:
date_str = '2022-01-01 15:30:45'
date_obj = pd.to_datetime(date_str)
print(date_obj.date()) # 输出 2022-01-01
print(date_obj.time()) # 输出 15:30:45
print(date_obj.dayofweek) # 输出 5 (星期六)
print(date_obj.dayofyear) # 输出 1 (一年的第一天)
print(date_obj.month_name()) # 输出 January
print(date_obj.to_period('D')) # 输出 2022-01-01
print(date_obj.round('H')) # 输出 2022-01-01 16:00:00
print(date_obj + pd.DateOffset(days=1)) # 输出 2022-01-02 15:30:45
Pandas 的日期格式化
日期格式化是将日期对象转化为字符串的过程。Pandas中的日期格式化与Python中的日期格式化基本相同。下面列出了一些常用的日期格式:
%Y:四位数的年份。%m:月份(01~12)。%d:日(01~31)。%H:小时(00~23)。%M:分钟(00~59)。%S:秒(00~59)。%f:微秒(000000~999999)。%a:星期几的简称。%A:星期几的全称。%p:上午或下午的标记。
我们可以使用Pandas自带的strftime()函数来进行日期格式化:
date_str = '2022-01-01 15:30:45'
date_obj = pd.to_datetime(date_str)
print(date_obj.strftime('%Y-%m-%d')) # 输出 2022-01-01
print(date_obj.strftime('%Y-%m-%d %H:%M:%S')) # 输出 2022-01-01 15:30:45
print(date_obj.strftime('%Y年%m月%d日')) # 输出 2022年01月01日
print(date_obj.strftime('%a %b %d %H:%M:%S %Y')) # 输出 Sat Jan 01 15:30:45 2022
Pandas 的日期偏移
在日期计算中,经常需要将日期向前或向后偏移一定的时间。Pandas中提供了DateOffset类来完成这种偏移。下面列出了一些常用的偏移单位:
days:天数。weeks:周数。months:月数。years:年数。hours:小时数。minutes:分钟数。seconds:秒数。
我们可以使用pd.DateOffset()函数来创建一个偏移量,然后通过Timestamp对象的+和-运算符来完成偏移:
date_str = '2022-01-01 15:30:45'
date_obj = pd.to_datetime(date_str)
offset = pd.DateOffset(days=1)
print(date_obj + offset) # 输出 2022-01-02 15:30:45
offset = pd.DateOffset(months=-1)
print(date_obj + offset) # 输出 2021-12-01 15:30:45
总结
本文介绍了Pandas中的日期对象、日期计算、日期格式化和日期偏移等内容。Pandas提供了强大的日期处理能力,可以大大减少日期计算和格式化的代码量,提高数据分析的效率。
极客教程