Python Pandas – 使用DateTimeIndex创建日期时间

Python Pandas – 使用DateTimeIndex创建日期时间

在数据分析和机器学习领域,日期和时间是非常重要的因素,因此要能够轻松地将日期和时间转换为 Pandas DataFrame 中的特定格式,就要使用 Pandas 的 DateTimeIndex。

DateTimeIndex 是什么?

DateTimeIndex 是 Pandas 中最常用的时间序列数据类型,它允许我们在数据帧或系列中指定日期和时间索引。

在 DateTimeIndex 中,索引的值以日期时间格式存储,这使得时间序列处理和分析变得更加简单和灵活。

如何创建 DateTimeIndex?

我们可以使用 Pandas 中的 to_datetime 这个函数从日期时间字符串、列表或 Python datetime 对象中创建 DateTimeIndex。

下面是一个例子,我们创建一个包含日期范围为 2022-01-01 至 2022-02-28 的 DateTimeIndex:

import pandas as pd

# 创建日期范围为 2022-01-01 至 2022-02-28 的 DateTimeIndex
dti = pd.date_range(start='2022-01-01', end='2022-02-28', freq='D')

# 将 DateTimeIndex 转换为 DataFrame
df = pd.DataFrame(index=dti)
print(df.head())

输出结果:

Empty DataFrame
Columns: []
Index: [2022-01-01 00:00:00, 2022-01-02 00:00:00, 2022-01-03 00:00:00, 2022-01-04 00:00:00, 2022-01-05 00:00:00]

在上面的例子中,我们使用 date_range 函数创建了一个包含 2022-01-01 至 2022-02-28 日期范围的 DateTimeIndex,频率为 D,即每天一个日期。然后,我们将 DateTimeIndex 转换为 DataFrame。

DateTimeIndex 还支持其它频率,例如每小时、每周、每月等等。通过 freq 参数即可指定频率。下面是一个例子:

# 创建日期范围为 2022-01-01 至 2022-02-28 的 DateTimeIndex,频率为 H,即每小时一个日期时间
dti = pd.date_range(start='2022-01-01', end='2022-02-28', freq='H')

# 将 DateTimeIndex 转换为 DataFrame
df = pd.DataFrame(index=dti)
print(df.head())

输出结果:

Empty DataFrame
Columns: []
Index: [2022-01-01 00:00:00, 2022-01-01 01:00:00, 2022-01-01 02:00:00, 2022-01-01 03:00:00, 2022-01-01 04:00:00]

在上面的例子中,我们将频率设置为 H,即每小时一个日期时间。

使用 Python datetime 创建 DateTimeIndex

除了使用 Pandas 中的 to_datetime 函数外,我们还可以使用 Python datetime 对象来创建 DateTimeIndex。

下面是一个例子,在 Python 中手动创建日期时间并将其转换为 DateTimeIndex:

import datetime

# 创建一个 datetime 对象
dt = datetime.datetime(2020, 1, 1)

# 将该 datetime 对象转换为 DatetimeIndex
dti = pd.DatetimeIndex([dt])
print(dti)

输出结果:

DatetimeIndex(['2020-01-01'], dtype='datetime64[ns]', freq=None)

在上面的例子中,我们创建了一个 datetime 对象,并将其转换为 DatetimeIndex。

使用 Pandas 转换日期时间格式

在数据分析和机器学习任务中,很多时候我们需要将数据中的日期时间格式进行转换,使其符合分析和建模的需求。

下面是一个例子,我们使用 Pandas 来转换日期时间格式:

import pandas as pd

# 创建包含日期时间的 DataFrame
df = pd.DataFrame({'日期': ['2022-01-01 10:30:00', '2022-01-02 12:00:00', '2022-01-03 15:45:00']})

# 查看原始日期时间格式
print(df['日期'])

# 将日期时间格式转换为 Pandas 的 datetime 类型
df['日期'] = pd.to_datetime(df['日期'])

# 查看转换后的日期时间格式
print(df['日期'])

输出结果:

0    2022-01-01 10:30:00
1    2022-01-02 12:00:00
2    2022-01-03 15:45:00
Name: 日期, dtype: object
0   2022-01-01 10:30:00
1   2022-01-02 12:00:00
2   2022-01-03 15:45:00
Name: 日期, dtype: datetime64[ns]

在上面的例子中,我们创建了一个包含日期时间的 DataFrame,并查看了原始的日期时间格式。然后,使用 Pandas 的 to_datetime 函数将日期时间格式转换为 Pandas 的 datetime 类型,并查看了转换后的日期时间格式。

Pandas 的 datetime 类型可以让我们方便地进行日期时间操作和计算,例如获取年、月、日、小时、分钟、秒等等,下面是一个例子:

# 创建包含日期时间的 DataFrame
df = pd.DataFrame({'日期': ['2022-01-01 10:30:00', '2022-01-02 12:00:00', '2022-01-03 15:45:00']})

# 将日期时间格式转换为 Pandas 的 datetime 类型
df['日期'] = pd.to_datetime(df['日期'])

# 获取年份
df['年份'] = df['日期'].dt.year

# 获取月份
df['月份'] = df['日期'].dt.month

# 获取日期
df['日'] = df['日期'].dt.day

# 获取小时数
df['小时数'] = df['日期'].dt.hour

# 获取分钟数
df['分钟数'] = df['日期'].dt.minute

# 获取秒数
df['秒数'] = df['日期'].dt.second

# 查看 DataFrame
print(df)

输出结果:

                   日期    年份  月份  日  小时数  分钟数  秒数
0 2022-01-01 10:30:00  2022   1  1    10    30   0
1 2022-01-02 12:00:00  2022   1  2    12     0   0
2 2022-01-03 15:45:00  2022   1  3    15    45   0

在上面的例子中,我们获取了日期时间中的年份、月份、日期、小时数、分钟数和秒数,并将其添加到 DataFrame 中。

结论

DateTimeIndex 是 Pandas 中最常用的时间序列数据类型之一,它允许我们以日期时间格式指定数据帧或系列的索引值。我们可以使用 Pandas 的 to_datetime 函数或 Python datetime 对象来创建 DateTimeIndex,并使用 Pandas 的 datetime 类型来进行日期时间格式的操作和计算。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程