📜  Pandas – 使用Python生成时间戳范围(1)

📅  最后修改于: 2023-12-03 14:45:02.930000             🧑  作者: Mango

Pandas – 使用Python生成时间戳范围

在使用 Pandas 处理时间序列数据时,常常需要生成一连串的时间戳范围。在这篇文章中,我们会介绍如何使用 Python 和 Pandas 来生成时间戳范围。

生成每天的时间戳

我们可以使用 pandas.date_range() 函数来生成一连串每天的时间戳。这个函数的语法如下:

pandas.date_range(start, end=None, periods=None, freq='D', tz=None, normalize=False, name=None, closed=None, **kwargs)

参数说明:

  • start: 开始时间,可以是字符串或 datetime 对象。
  • end: 结束时间,可以是字符串或 datetime 对象,如果没有指定,则 periods 参数必须指定。
  • periods: 生成时间戳的个数。
  • freq: 时间戳之间的间隔,默认为天('D')。
import pandas as pd

# 生成 7 天的时间戳
date_range = pd.date_range(start="2021-07-01", periods=7)

print(date_range)

输出结果:

DatetimeIndex(['2021-07-01', '2021-07-02', '2021-07-03', '2021-07-04', '2021-07-05', '2021-07-06', '2021-07-07'], dtype='datetime64[ns]', freq='D')
生成每小时的时间戳

如果需要生成每小时的时间戳,可以将 freq 参数设置为 'H'。

import pandas as pd

# 生成 24 小时的时间戳
date_range = pd.date_range(start="2021-07-01", periods=24, freq='H')

print(date_range)

输出结果:

DatetimeIndex(['2021-07-01 00:00:00', '2021-07-01 01:00:00', '2021-07-01 02:00:00', '2021-07-01 03:00:00', '2021-07-01 04:00:00', '2021-07-01 05:00:00', '2021-07-01 06:00:00', '2021-07-01 07:00:00', '2021-07-01 08:00:00', '2021-07-01 09:00:00', '2021-07-01 10:00:00', '2021-07-01 11:00:00', '2021-07-01 12:00:00', '2021-07-01 13:00:00', '2021-07-01 14:00:00', '2021-07-01 15:00:00', '2021-07-01 16:00:00', '2021-07-01 17:00:00', '2021-07-01 18:00:00', '2021-07-01 19:00:00', '2021-07-01 20:00:00', '2021-07-01 21:00:00', '2021-07-01 22:00:00', '2021-07-01 23:00:00'], dtype='datetime64[ns]', freq='H')
生成每分钟的时间戳

如果需要生成每分钟的时间戳,可以将 freq 参数设置为 'T'。

import pandas as pd

# 生成 10 分钟的时间戳
date_range = pd.date_range(start="2021-07-01", periods=10, freq='T')

print(date_range)

输出结果:

DatetimeIndex(['2021-07-01 00:00:00', '2021-07-01 00:01:00', '2021-07-01 00:02:00', '2021-07-01 00:03:00', '2021-07-01 00:04:00', '2021-07-01 00:05:00', '2021-07-01 00:06:00', '2021-07-01 00:07:00', '2021-07-01 00:08:00', '2021-07-01 00:09:00'], dtype='datetime64[ns]', freq='T')
生成时间范围并将其转换为数据帧

最后,我们可以使用 pandas.DataFrame() 函数将生成的时间戳范围转换为数据帧。在数据帧中,时间戳范围可以作为索引列。

import pandas as pd

# 生成时间范围并将其转换为数据帧
date_range = pd.date_range(start="2021-07-01", periods=7)
df = pd.DataFrame(index=date_range)

print(df)

输出结果:

Empty DataFrame
Columns: []
Index: [2021-07-01 00:00:00, 2021-07-02 00:00:00, 2021-07-03 00:00:00, 2021-07-04 00:00:00, 2021-07-05 00:00:00, 2021-07-06 00:00:00, 2021-07-07 00:00:00]