スポンサーリンク

Pythonのpandasのdate_range()で時系列データを生成

期間を指定

開始と終了を指定して、時系列データを生成できます。
デフォルトでは日単位で生成されます。

import pandas as pd

print(pd.date_range('2018-11-04', '2018-11-08'))

スポンサーリンク

開始と期間を指定

periodsに単位を指定できます。例えば、下記は3日間の期間で生成されます。

print(pd.date_range('2018-11-04', periods=3))

年単位で生成

freq='Y'を設定することで年単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='Y'))

月末単位で生成

freq='M'を設定することで月末単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='M'))

週単位で生成

freq='W'を設定することで週単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='W'))

日単位で生成

freq='D'を設定することで日単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='D'))

時間単位で生成

freq='H'を設定することで時間単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='H'))

分単位で生成

freq='min'を設定することで分単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='min'))

秒単位で生成

freq='S'を設定することで秒単位で生成できます

print(pd.date_range('2018-11-04', periods=3, freq='S'))

スポンサーリンク

サンプルコード

下記がサンプルコードになります。

 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

print("開始と終了を指定")
print(pd.date_range('2018-11-04', '2018-11-08'))

print("開始と期間を指定")
print(pd.date_range('2018-11-04', periods=3))

print("年単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='Y'))

print("月末単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='M'))

print("週単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='W'))

print("日単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='D'))

print("時間単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='H'))

print("分単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='min'))

print("秒単位で生成")
print(pd.date_range('2018-11-04', periods=3, freq='S'))

下記が実行結果になります。
 $ ./sample.py 
開始と終了を指定
DatetimeIndex(['2018-11-04', '2018-11-05', '2018-11-06', '2018-11-07',
               '2018-11-08'],
              dtype='datetime64[ns]', freq='D')
開始と期間を指定
DatetimeIndex(['2018-11-04', '2018-11-05', '2018-11-06'], dtype='datetime64[ns]', freq='D')
年単位で生成
DatetimeIndex(['2018-12-31', '2019-12-31', '2020-12-31'], dtype='datetime64[ns]', freq='A-DEC')
月末単位で生成
DatetimeIndex(['2018-11-30', '2018-12-31', '2019-01-31'], dtype='datetime64[ns]', freq='M')
週単位で生成
DatetimeIndex(['2018-11-04', '2018-11-11', '2018-11-18'], dtype='datetime64[ns]', freq='W-SUN')
日単位で生成
DatetimeIndex(['2018-11-04', '2018-11-05', '2018-11-06'], dtype='datetime64[ns]', freq='D')
時間単位で生成
DatetimeIndex(['2018-11-04 00:00:00', '2018-11-04 01:00:00',
               '2018-11-04 02:00:00'],
              dtype='datetime64[ns]', freq='H')
分単位で生成
DatetimeIndex(['2018-11-04 00:00:00', '2018-11-04 00:01:00',
               '2018-11-04 00:02:00'],
              dtype='datetime64[ns]', freq='T')
秒単位で生成
DatetimeIndex(['2018-11-04 00:00:00', '2018-11-04 00:00:01',
               '2018-11-04 00:00:02'],
              dtype='datetime64[ns]', freq='S')

スポンサーリンク