Python Pandas – 从 PeriodIndex 对象获取年份

Python Pandas – 从 PeriodIndex 对象获取年份

在使用Pandas处理时间序列数据时,PeriodIndex是一种经常出现的数据类型。PeriodIndex是一种用于表示一段时间的时间段(period)的对象。但有时我们需要从PeriodIndex对象中提取年份,可能会让一些新同学感到不知所措,所以我们来讲一讲如何从PeriodIndex对象获取年份。

前提知识

在使用Python Pandas处理时间序列数据之前,需要明确时间序列数据的两个概念:时间戳(Timestamp)和时间段(Period)。其中时间戳是指特定的时刻,而时间段指一段时间范围。在Pandas中,时间戳使用DatetimeIndex类进行表示,时间段使用PeriodIndex类进行表示。需要通过resample或groupby操作,将数据转化为PeriodIndex类型后才能使用以下的方法。

获取年份的方法

获取PeriodIndex对象中的年份,有以下两种方法:

  1. 使用.year属性获取

PeriodIndex对象具有一个.year属性,可以用来获取PeriodIndex对象中每个时间段的年份。

拿一个示例来说明:

import pandas as pd

# 创建PeriodIndex对象
dates = pd.date_range('20210101', periods=6, freq='M')
period_index = pd.PeriodIndex(dates, freq='M')

# 使用.year属性获取年份
for period in period_index:
    print(period.year)

输出结果如下:

2021
2021
2021
2021
2021
2021

从输出结果来看,我们成功地从PeriodIndex对象中获取了每个时间段的年份,这就是使用.year属性的方法。

  1. 使用to_timestamp()方法获取

另一种获取PeriodIndex对象中年份的方法是使用to_timestamp()方法。to_timestamp()方法会将每个时间段转换为该时间段中的某个时间点,例如我们可以将月份转换为每月的第一天,然后使用DatetimeIndex对象的.year属性获取年份。

再拿一个示例来说明:

import pandas as pd

# 创建PeriodIndex对象
dates = pd.date_range('20210101', periods=6, freq='M')
period_index = pd.PeriodIndex(dates, freq='M')

# 使用to_timestamp()方法和.year属性获取年份
for period in period_index:
    print(period.to_timestamp().year)

输出结果如下:

2021
2021
2021
2021
2021
2021

从输出结果来看,我们也成功地从PeriodIndex对象中获取了每个时间段的年份,这就是使用to_timestamp()方法的方法。

需要注意的是,使用.to_timestamp()方法将时间段转换为时间戳时,会将时间段转换为该时间段的起始时间,例如“2021年1月”会被转换为“2021年1月1日 00:00:00”。

结论

本文介绍了两种从PeriodIndex对象获取年份的方法,分别是使用.year属性和使用to_timestamp()方法。这些方法可以帮助我们更方便地处理时间序列数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程