在 Pandas 中快速生成时间序列数据可通过以下方法实现,核心是利用 pd.date_range 创建时间索引,并结合 DataFrame 构造数据。以下为具体步骤和示例:
方法 1:使用 pd.util.testing.makeTimeDataFrame(快速生成带随机数据的 DataFrame)方法 2:手动构造时间索引 + 随机数据- 步骤:
用 pd.date_range 生成时间索引。
用 numpy.random 生成随机数据。
组合为 DataFrame。
- 代码示例:import pandas as pdimport numpy as np# 生成时间索引(10 个小时频率的时间点)dates = pd.date_range(start='2000-01-01', periods=10, freq='H')# 生成随机数据(3 列,每列 10 个随机整数)data = np.random.randint(1, 1000, size=(10, 3))# 构造 DataFramedf = pd.DataFrame(data, index=dates, columns=['商品编码', '商品销量', '商品库存'])print(df.head())输出: 商品编码 商品销量 商品库存2000-01-01 00:00:00 99 264 982000-01-01 01:00:00 294 406 8272000-01-01 02:00:00 89 221 9312000-01-01 03:00:00 962 153 9562000-01-01 04:00:00 538 46 374
- 参数说明:
pd.date_range 关键参数:
start:起始时间(如 '2000-01-01')。
periods:时间点数量(如 10)。
freq:频率(如 'D' 日、'M' 月、'T' 分钟)。
numpy.random.randint:生成指定范围的随机整数。
方法 3:使用 pd.util.testing.makeDateIndex(仅生成时间索引)- 功能:快速生成时间索引,适用于需单独控制索引的场景。
- 代码示例:import pandas as pdimport numpy as np# 生成 10 个小时频率的时间索引index = pd.util.testing.makeDateIndex(10, freq='H')# 生成数据并赋值索引data = np.random.rand(10, 2)df = pd.DataFrame(data, index=index, columns=['温度', '湿度'])print(df.head())输出: 温度 湿度2000-01-01 00:00:00 0.548814 0.7151892000-01-01 01:00:00 0.602763 0.5448832000-01-01 02:00:00 0.423655 0.6458942000-01-01 03:00:00 0.437587 0.8917732000-01-01 04:00:00 0.963663 0.383442
关键注意事项- 频率配置:通过 freq 参数灵活调整时间间隔(如 'D'、'H'、'T'、'S')。
- 数据类型:可根据需求生成整数(np.random.randint)或浮点数(np.random.rand)。
- 列名自定义:通过 columns 参数指定列名,增强可读性。
总结- 快速生成带随机数据的 DataFrame:优先用 pd.util.testing.makeTimeDataFrame。
- 需要完全控制数据构造:手动组合 pd.date_range 和 numpy.random。
- 仅需时间索引:使用 pd.util.testing.makeDateIndex。
图:makeTimeDataFrame 生成的随机时间序列数据