📅  最后修改于: 2023-12-03 14:45:02.930000             🧑  作者: Mango
在使用 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]