Python Pandas – 返回表示UTC日期和时间的新时间戳

Python Pandas – 返回表示UTC日期和时间的新时间戳

在使用Python Pandas处理数据时,经常需要使用日期和时间,其中UTC时间更是常用。那么如何在Python Pandas中返回表示UTC日期和时间的新时间戳呢?

Pandas Timestamp

首先要了解的是,Pandas中的时间戳类型是Timestamp。Timestamp提供了丰富的功能和方法来操作时间戳。我们可以使用pd.Timestamp()来创建一个时间戳对象。

import pandas as pd

ts = pd.Timestamp('2022-02-22 22:22:22')
print(ts)

输出结果如下:

2022-02-22 22:22:22

Pandas to_datetime

如果数据中包含日期字符串,我们可以使用to_datetime()方法将其转换为Pandas的时间戳对象。需要注意的是,to_datetime()中的utc参数默认为False,如果需要返回UTC时间戳,则需要将utc参数设为True。

import pandas as pd

str_time = '2022-02-22 22:22:22'
dt = pd.to_datetime(str_time, utc=True)
print(dt)

输出结果如下:

2022-02-22 22:22:22+00:00

我们可以看到,输出结果中带有+00:00,表示UTC时间。

Pandas date_range

如果我们需要生成一段时间内的时间戳序列,则可以使用date_range()方法,其中start和end参数用于指定起始和结束时间,freq参数用于指定时间间隔。

import pandas as pd

start_time = pd.Timestamp('2022-02-22 00:00:00')
end_time = pd.Timestamp('2022-02-23 00:00:00')
freq = '10T'

timestamps = pd.date_range(start=start_time, end=end_time, freq=freq, tz='UTC')
print(timestamps)

输出结果如下:

DatetimeIndex(['2022-02-22 00:00:00+00:00', '2022-02-22 00:10:00+00:00',
               '2022-02-22 00:20:00+00:00', '2022-02-22 00:30:00+00:00',
               '2022-02-22 00:40:00+00:00', '2022-02-22 00:50:00+00:00',
               '2022-02-22 01:00:00+00:00', '2022-02-22 01:10:00+00:00',
               '2022-02-22 01:20:00+00:00', '2022-02-22 01:30:00+00:00',
               ...
               '2022-02-22 22:20:00+00:00', '2022-02-22 22:30:00+00:00',
               '2022-02-22 22:40:00+00:00', '2022-02-22 22:50:00+00:00',
               '2022-02-22 23:00:00+00:00', '2022-02-22 23:10:00+00:00',
               '2022-02-22 23:20:00+00:00', '2022-02-22 23:30:00+00:00',
               '2022-02-22 23:40:00+00:00', '2022-02-22 23:50:00+00:00'],
              dtype='datetime64[ns, UTC]', length=145, freq='10T')

我们可以看到,timestamps中的时间戳表示的都是UTC时间。

Pandas DateOffset

如果我们需要对时间戳进行加减运算,则可以使用DateOffset对象,该对象可以用于指定时间偏移量。偏移量可以以可迭代对象的形式一次指定多个。

import pandas as pd

ts = pd.Timestamp('2022-02-22 22:22:22', tz='UTC')
offset = pd.DateOffset(days=1, hours=1)

new_ts = ts + offset
print(new_ts)

输出结果如下:

2022-02-23 23:22:22+00:00

可以看到,new_ts是在ts的基础上加上了1天1小时的时间偏移。

Pandas to_period

有时候我们需要将时间戳转换为时间段,例如按月、按周等。这时可以使用to_period()方法。

import pandas as pd

ts = pd.Timestamp('2022-02-22 22:22:22', tz='UTC')
period = ts.to_period('M')

print(period)

输出结果如下:

2022-02

可以看到,period表示的是2022年2月这个时间段。

结论

在Python Pandas中,要返回表示UTC日期和时间的新时间戳,可以使用pd.to_datetime()方法,将utc参数设为True即可返回UTC时间戳。如果需要生成时间戳序列,可以使用pd.date_range()方法。对时间戳进行加减运算时,可以使用pd.DateOffset对象。如果需要将时间戳转换为时间段,则可以使用to_period()方法。掌握了这些方法,我们可以更方便地处理时间和日期数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程