将 Pandas DateTimeIndex 转换为 Unix 时间戳

将 Pandas DateTimeIndex 转换为 Unix 时间戳

在本文中,我们将介绍如何将 Pandas DataFrame 中的 DateTimeIndex 转换为 Unix 时间戳。Unix 时间戳是指从 1970 年 1 月 1 日 00:00:00 UTC 到当前时间所经过的秒数。这是一种通用、标准化的时间表示方式,其优势是易于计算和传输。

阅读更多:Pandas 教程

问题描述

假设我们有一个名为 df 的 Pandas DataFrame,其中的时间列是一个 DateTimeIndex。现在,我们想将这个时间列转换为 Unix 时间戳,以便于后续的处理。

下面是一个示例数据:

                     value
2022-01-01 00:00:00     1
2022-01-01 01:00:00     2
2022-01-01 02:00:00     3
2022-01-01 03:00:00     4
2022-01-01 04:00:00     5

解决方法

要将 DateTimeIndex 转换为 Unix 时间戳,我们可以使用 Pandas 的 astype() 方法,将时间列的数据类型转换为整型(int)即可。具体来说,需要将时间列的单位转换为秒(s),然后再减去 1970 年 1 月 1 日 00:00:00 UTC 对应的秒数(即 0)。下面是具体的代码:

import pandas as pd

# 创建示例数据
df = pd.DataFrame({'value': [1, 2, 3, 4, 5]}, index=pd.date_range('2022-01-01', periods=5, freq='H'))

# 将时间列转换为 Unix 时间戳
unix_time = df.index.astype(int) // 10**9

# 输出转换后的结果
print(unix_time)

输出结果如下:

[1640995200 1640998800 1641002400 1641006000 1641009600]

可以看到,时间列已经成功地转换成了 Unix 时间戳。

如果要将 Unix 时间戳转换回 DateTimeIndex,我们可以使用 pd.to_datetime() 方法,具体代码如下:

# 将 Unix 时间戳转换为 DateTimeIndex
df.index = pd.to_datetime(unix_time, unit='s')

# 输出转换后的结果
print(df)

输出结果如下:

                     value
2022-01-01 00:00:00     1
2022-01-01 01:00:00     2
2022-01-01 02:00:00     3
2022-01-01 03:00:00     4
2022-01-01 04:00:00     5

可以看到,时间列已经成功地转换回了 DateTimeIndex。

总结

本文介绍了如何将 Pandas 的 DateTimeIndex 转换为 Unix 时间戳,以及如何将 Unix 时间戳转换回 DateTimeIndex。这是一个非常常见的数据处理任务,在实际工作中也很有用。希望本文能够对读者有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程