@author jackzhenguo
@desc 如何用 Pandas 快速生成时间序列数据?
@tag
@version
@date 2020/03/21
与时间序列相关的问题,平时还是挺常见的。
介绍一个小技巧,使用 pd.util.testing.makeTimeDataFrame
只需要一行代码,便能生成一个 index 为时间序列的 DataFrame:
import pandas as pd
pd.util.testing.makeTimeDataFrame(10)
结果:
A B C D
2000-01-03 0.932776 -1.509302 0.285825 0.941729
2000-01-04 0.565230 -1.598449 -0.786274 -0.221476
2000-01-05 -0.152743 -0.392053 -0.127415 0.841907
2000-01-06 1.321998 -0.927537 0.205666 -0.041110
2000-01-07 0.324359 1.512743 0.553633 0.392068
2000-01-10 -0.566780 0.201565 -0.801172 -1.165768
2000-01-11 -0.259348 -0.035893 -1.363496 0.475600
2000-01-12 -0.341700 -1.438874 -0.260598 -0.283653
2000-01-13 -1.085183 0.286239 2.475605 -1.068053
2000-01-14 -0.057128 -0.602625 0.461550 0.033472
时间序列的间隔还能配置,默认的 A B C D 四列也支持配置。
import numpy as np
df = pd.DataFrame(np.random.randint(1,1000,size=(10,3)),
columns = ['商品编码','商品销量','商品库存'])
df.index = pd.util.testing.makeDateIndex(10,freq='H')
结果:
商品编码 商品销量 商品库存
2000-01-01 00:00:00 99 264 98
2000-01-01 01:00:00 294 406 827
2000-01-01 02:00:00 89 221 931
2000-01-01 03:00:00 962 153 956
2000-01-01 04:00:00 538 46 374
2000-01-01 05:00:00 226 973 750
2000-01-01 06:00:00 193 866 7
2000-01-01 07:00:00 300 129 474
2000-01-01 08:00:00 966 372 835
2000-01-01 09:00:00 687 493 910