Pandas 改变日期

Pandas 改变日期

在本文中,我们将介绍如何使用Pandas库构建日期对象并进行日期计算和格式化。

阅读更多:Pandas 教程

Pandas 处理日期对象

Pandas有两种日期对象:TimestampDatetimeIndexTimestamp表示一个日期和时间,而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提供了强大的日期处理能力,可以大大减少日期计算和格式化的代码量,提高数据分析的效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程