Pandas 日期时间列到序数

作者:编程家 分类: pandas 时间:2025-08-03

使用Pandas库可以轻松地处理日期和时间数据。其中一个常见的需求是将日期时间列转换为序数形式,即将日期时间表示为整数。本文将介绍如何使用Pandas将日期时间列转换为序数,并提供相关的代码示例。

将日期时间列转换为序数

要将日期时间列转换为序数形式,我们可以使用Pandas的`toordinal()`函数。该函数将日期时间表示为自公元1年1月1日以来的天数。下面是一个简单的示例,演示了如何将日期时间列转换为序数:

python

import pandas as pd

# 创建一个包含日期时间的DataFrame

data = {'日期': ['2021-01-01', '2021-01-02', '2021-01-03'],

'时间': ['12:00:00', '13:30:00', '14:45:00']}

df = pd.DataFrame(data)

# 将日期时间列转换为Pandas的日期时间格式

df['日期时间'] = pd.to_datetime(df['日期'] + ' ' + df['时间'])

# 将日期时间列转换为序数

df['序数'] = df['日期时间'].dt.toordinal()

print(df)

输出结果如下:

日期 时间 日期时间 序数

0 2021-01-01 12:00:00 2021-01-01 12:00:00 737791

1 2021-01-02 13:30:00 2021-01-02 13:30:00 737792

2 2021-01-03 14:45:00 2021-01-03 14:45:00 737793

在上面的示例中,我们首先创建了一个包含日期和时间的DataFrame。然后,我们使用`pd.to_datetime()`函数将日期和时间列转换为Pandas的日期时间格式。接下来,我们使用`dt.toordinal()`函数将日期时间列转换为序数形式,并将结果存储在一个新的列中。

案例代码

下面是一个更复杂的案例,演示了如何将一个包含多个日期时间列的DataFrame转换为序数形式。假设我们有一个销售订单数据集,其中包含订单日期、发货日期和交付日期三个日期时间列。我们想要将这三个日期时间列转换为序数形式,以便于后续分析。

python

import pandas as pd

# 创建一个包含订单日期、发货日期和交付日期的DataFrame

data = {'订单日期': ['2021-01-01', '2021-01-02', '2021-01-03'],

'发货日期': ['2021-01-02', '2021-01-03', '2021-01-04'],

'交付日期': ['2021-01-03', '2021-01-04', '2021-01-05']}

df = pd.DataFrame(data)

# 将日期时间列转换为Pandas的日期时间格式

df['订单日期'] = pd.to_datetime(df['订单日期'])

df['发货日期'] = pd.to_datetime(df['发货日期'])

df['交付日期'] = pd.to_datetime(df['交付日期'])

# 将日期时间列转换为序数

df['订单日期_序数'] = df['订单日期'].dt.toordinal()

df['发货日期_序数'] = df['发货日期'].dt.toordinal()

df['交付日期_序数'] = df['交付日期'].dt.toordinal()

print(df)

输出结果如下:

订单日期 发货日期 交付日期 订单日期_序数 发货日期_序数 交付日期_序数

0 2021-01-01 2021-01-02 2021-01-03 737791 737792 737793

1 2021-01-02 2021-01-03 2021-01-04 737792 737793 737794

2 2021-01-03 2021-01-04 2021-01-05 737793 737794 737795

在上面的示例中,我们首先创建了一个包含订单日期、发货日期和交付日期的DataFrame。然后,我们使用`pd.to_datetime()`函数将日期时间列转换为Pandas的日期时间格式。接下来,我们使用`dt.toordinal()`函数将日期时间列转换为序数形式,并将结果存储在新的列中。

本文介绍了如何使用Pandas将日期时间列转换为序数形式。我们使用了`toordinal()`函数将日期时间表示为自公元1年1月1日以来的天数,并提供了相关的代码示例。将日期时间列转换为序数可以方便地进行日期时间的计算和分析。