@author jackzhenguo @desc 如何用 Pandas 快速生成时间序列数据? @tag @version @date 2020/03/21
第183个小例子:如何用 Pandas 快速生成时间序列数据?
与时间序列相关的问题,平时还是挺常见的。
介绍一个小技巧,使用 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