Pandas:将 Pandas 列中的日期时间格式化为季度

Pandas:将 Pandas 列中的日期时间格式化为季度

在本文中,我们将介绍如何使用 Pandas 将日期时间数据格式化为季度的形式。虽然 Pandas 中的时间戳功能十分强大,但有时需要以季度而不是月份或年份的形式来表示时间戳数据。下面是 Pandas 中将日期时间数据格式化为季度的方法:

阅读更多:Pandas 教程

将日期时间数据转换为季度

首先,我们需要将日期时间数据转换为 Pandas 可以使用的日期时间形式。以下是一个示例 CSV 文件,其中包含两列日期时间数据:

import pandas as pd

df = pd.read_csv('dates.csv')
print(df)

          date_1      date_2
0     2017-03-15  2017-12-01
1     2018-06-30  2018-09-01
2     2019-01-01  2019-03-01
3     2020-07-01  2020-09-01
4     2021-06-30  2021-09-30
Python

将这些数据加载到 Pandas 数据框中后,确保它们已转换为 Pandas 可以使用的“日期时间”格式。我们可以使用 Pandas 的 to_datetime() 方法将其转换。

df['date_1'] = pd.to_datetime(df['date_1'])
df['date_2'] = pd.to_datetime(df['date_2'])
print(df.dtypes)

date_1    datetime64[ns]
date_2    datetime64[ns]
dtype: object
Python

现在,我们已经将日期时间转换为 Pandas 能够处理的格式。接下来,我们可以将日期时间数据转换为季度:

df['quarter_1'] = df['date_1'].dt.quarter
df['quarter_2'] = df['date_2'].dt.quarter
print(df)

      date_1     date_2  quarter_1  quarter_2
0 2017-03-15 2017-12-01          1          4
1 2018-06-30 2018-09-01          2          3
2 2019-01-01 2019-03-01          1          1
3 2020-07-01 2020-09-01          3          3
4 2021-06-30 2021-09-30          2          3
Python

我们添加了两列新的数据,分别是“季度_1”和“季度_2”。使用 dt.quarter 方法,Pandas 识别日期时间数据,并以季度形式将数据转换为数字。假设我们要在数据框中保留原始日期时间列,我们可以使用 drop() 将其删除:

df = df.drop(['date_1', 'date_2'], axis=1)
print(df)

   quarter_1  quarter_2
0          1          4
1          2          3
2          1          1
3          3          3
4          2          3
Python

现在,我们只有两个列剩下来,它们代表每个日期时间值的季度。

将季度转换为字符串表示形式

季度数字可能不直观,因此,我们可能希望将季度转换为字符串表示形式,比如 Q1、Q2、Q3 和 Q4。以下是如何使用 Pandas 将季度转换为字符串的示例:

df['quarter_1'] = 'Q' + df['quarter_1'].astype(str)
df['quarter_2'] = 'Q' + df['quarter_2'].astype(str)
print(df)

  quarter_1 quarter_2
0        Q1        Q4
1        Q2        Q3
2        Q1        Q1
3        Q3        Q3
4        Q2        Q3
Python

我们使用 astype() 方法将季度数字转换为字符串,并添加前缀“Q”。现在,我们的季度数据以字符串形式表示,并且更加直观和易读。

根据季度进行数据分组

现在,我们可以根据季度对数据进行分组,以进行更深入的分析。以下是如何使用 Pandas 对季度数据进行分组的示例:

quarterly_data = df.groupby(['quarter_1'])['quarter_2'].count()
print(quarterly_data)

quarter_1
Q1    2
Q2    2
Q3    1
Name: quarter_2, dtype: int64
Python

我们使用 groupby() 方法根据季度_1列分组,并计算每个季度_1中含有多少个季度_2。 Pandas 会返回一个 Pandas 数据系列,其中包含每个季度_1中季度_2的数量。这样就可以在分析季度数据时进行更深入的展开。

总结

在本文中,我们了解了如何使用 Pandas 将日期时间数据格式化为季度的形式。我们首先将日期时间数据转换为 Pandas 可以使用的日期时间格式,然后使用 dt.quarter() 法将日期时间数据转换为季度。我们还学习了如何将季度数据转换为字符串表示形式,并在季度数据中进行了分组,以进一步分析季度数据。现在,您已经掌握了 Pandas 中基本的日期时间格式化方法,可以在数据分析中更好地使用日期时间数据。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册