分析に基づいて、パンダライブラリー - 詳細な処理の時系列

  Pythonのデータ分析を使用する場合は、しばしば、このような定量的取引など、特定の時間に関連して、時間と日付のフォーマット変換処理、分析、データマイニングが発生した過去のデータから、株価の変化を探すことです。Pythonが来る時間モジュールの日時を処理し、numpyのライブラリは、データ分析パンダBANK Python環境として、対応するメソッドを提供するだけでなく、強力なデータ処理日時を提供し、処理ツールは、時系列です。

  1、日付のシーケンスを生成します

  主pd.data_range()とpd.period_range()は、2つの方法を提供し、パラメータは、開始時刻、終了時刻が与えられ、及び回数は、時間 - 周波数(FREQ =「M」月、「D」日、W「を生成しました'週、' Y「)、その他。

  二つの主な違いは、()は配列DatetimeIndex日付形式を生成されるpd.date_rangeあるpd.period_range()で生成されたシーケンスPeriodIndex日付形式。

  時系列のシーケンスを生成し、周囲を比較することによって、次のヶ月:

  date_rng = pd.date_range( '2019年1月1日'、FREQ = 'M'、期間= 12)

  プリント(f'month DATE_RANGE():\ nの{date_rng} ')

  

  DATE_RANGE():

  DatetimeIndex([ '2019年1月31日'、 '2019年2月28日'、 '2019年3月31日'、 '2019年4月30日'、

  「2019年5月31日」、「2019年6月30日」、「2019年7月31日」、「2019年8月31日」

  '2019年9月30日'、 '2019年10月31日'、 '2019年11月30日'、 '2019年12月31日']、

  DTYPE = 'datetime64 [NS]'、FREQ = 'M')

  

  period_rng = pd.period_range( '2019年1月1日'、FREQ = 'M'、期間= 12)

  プリント(f'month period_range():\ N {period_rng} ')

  

  period_range():

  PeriodIndex([ '2019から01'、 '2019から02'、 '2019から03'、 '2019から04'、 '2019から05'、 '2019から06'、

  '2019から07'、 '2019から08'、 '2019から09'、 '2019から10'、 '2019から11'、 '2019から12']、

  DTYPE = '期間[M]'、FREQは= 'M')

  

  date_rng = pd.date_range( '2019年1月1日'、FREQ = 'W-SUN'、期間= 12)

  プリント(f'week DATE_RANGE():\ N {date_rng} ')

  

  週DATE_RANGE():

  DatetimeIndex([ '2019年1月6日'、 '2019年1月13日'、 '2019年1月20日'、 '2019年1月27日'、

  「2019年2月3日」、「2019年2月10日」、「2019年2月17日」、「2019年2月24日」

  '2019年3月3日'、 '2019年3月10日'、 '2019年3月17日'、 '2019年3月24日']、

  DTYPE = 'datetime64 [NS]'、FREQ = 'W-SUN')

  

  period_rng = pd.period_range( '2019年1月1日'、FREQ = 'W-SUN'、期間= 12)

  プリント(f'week period_range():\ N {period_rng} ')

  

  週period_range():

  PeriodIndex([ '2018年12月31日/ 2019年1月6日'、 '2019年1月7日/ 2019年1月13日'

  「2019年1月14日/ 2019年1月20日」、「2019年1月21日/ 2019年1月27日」

  「2019年1月28日/ 2019年2月3日」、「2019年2月4日/ 2019年2月10日」

  「2019年2月11日/ 2019年2月17日」、「2019年2月18日/ 2019年2月24日」

  「2019年2月25日/ 2019年3月3日」、「2019年3月4日/ 2019年3月10日」

  '2019年3月11日/ 2019年3月17日'、 '2019年3月18日/ 2019年3月24日']、

  DTYPE = '期間[W-SUN]'、FREQ = 'W-SUN')

  

  date_rng = pd.date_range( '2019年1月1日0時00分00秒'、FREQ = 'H'、期間= 12)

  プリント(f'hour DATE_RANGE():\ nの{date_rng} ')

  

  時間DATE_RANGE():

  DatetimeIndex([ '2019年1月1日午前0時00分00秒'、 '2019年1月1日午前1時00分00秒'、

  「2019年1月1日2時00分00秒」、「2019年1月1日午前三時00分00秒」、

  「2019年1月1日4時00分00秒」、「2019年1月1日午前5時00分00秒」、

  「2019年1月1日午前6時00分○○秒」、「2019年1月1日午前7時○○分00秒」

  「2019年1月1日8時00分00秒」、「2019年1月1日9時00分00秒」、

  「2019年1月1日午前十時00分00秒」、「2019年1月1日午前11時〇〇分00秒」]、

  DTYPE = 'datetime64 [NS]'、FREQは= 'H')

  

  period_rng = pd.period_range( '2019年1月1日00:00:00'、FREQ = 'H'、期間= 12)

  プリント(f'hour period_range():\ N {period_rng} ')

  

  時間period_range():

  PeriodIndex([「2019年1月1日午前0時」、「2019年1月1日午前1時00分」、「2019年1月1日2時」、

  「2019年1月1日午前3時」、「2019年1月1日午前4時00」、「2019年1月1日5時00分」

  「2019年1月1日午前6時00分」、「2019年1月1日七時」、「2019年1月1日8時00分」

  「2019年1月1日9時00分」、「2019年1月1日10:00」、「2019年1月1日11時」]、

  DTYPE = '期間[H]'、FREQの= 'H')

  

  2、および変換Timestampオブジェクトを生成します

  タイムスタンプTimestampオブジェクトを作成すると、pd.Timestamp()メソッドとpd.to_datetime()メソッドを持っています。次のように:

  TS = pd.Timestamp(2019,1,1)

  プリント(f'pd.Timestamp() - 1:{} TS ')

  #pd.Timestamp() - 1:2019年1月1日0時00分○○秒

  TS = pd.Timestamp(DT(2019,1,1、時間= 0分= 1、秒= 1))

  プリント(f'pd.Timestamp() - 2:{} TS ')

  #pd.Timestamp() - 2:2019年1月1日午前0時01分01秒

  TS = pd.Timestamp(2019年1月1日0:1:1)

  プリント(f'pd.Timestamp() - 3:{} TS ')

  #pd.Timestamp() - 3:2019年1月1日午前0時01分01秒

  プリント(f'pd.Timestamp() - タイプ:{タイプ(TS)} ')

  #pd.Timestamp() - タイプ:

  #Dtを= pd.to_datetime(2019,1,1)がサポートされていません

  DT = pd.to_datetime(DT(2019,1,1、時間= 0分= 1、秒= 1))

  プリント(f'pd.to_datetime() - 1:{} DT ')

  #1 pd.to_datetime() - 1:2019年1月1日夜12時01分01秒

  DT = pd.to_datetime(2019年1月1日0:1:1)

  プリント(f'pd.to_datetime() - 2:{} DT ')

  #1 pd.to_datetime() - 2:2019年1月1日夜12時01分01秒

  プリント(f'pd.to_datetime() - タイプ:{タイプ(DT)} ')

  #1 pd.to_datetime() - タイプ:

  #Pd.to_datetimeは、カスタムの時系列を生成します

  dtlist = pd.to_datetime([2019年1月1日0:1:1、2019年3月1日0:1:1])

  プリント(f'pd.to_datetime() - リスト:{dtlist} ')

  #1 pd.to_datetime() - リスト:DatetimeIndex([ '2019年1月1日0時01分01秒'、 '2019年3月1日0時01分01秒']、DTYPE = 'datetime64 [NS]'、FREQ =無し)

  #タイムスタンプは、期間ヶ月の期間に変換しました

  PR = ts.to_period( 'M')

  プリント(f'ts.to_period():{PR} ')

  #1 ts.to_period():2019から01

  プリント(f'pd.to_period() - タイプ:{型(PR)} ')

  #1 pd.to_period() - タイプ:

  3、ターゲット変換期間を生成します

  #DEFINE期間

  = pd.Period( '2019')あたり

  プリント(f'pd.Period():{}あたり)

  #1 pd.Period():2019

  per_del = pd.Period( '2019') - pd.Period( '2018')

  プリント(スペーサ{per_del}のf'2019及び2018「)を直接#+であることができる - (代わって)整数

  #2019と2018ギャップイヤー

  タイムスタンプに#時間

  印刷(per.to_timestamp(方法= '末端'))#2019年12月31日午後12時00分00秒

  印刷(per.to_timestamp(方法= 'スタート'))#2019年1月1日0時00分○○秒

  4、発生間隔はtimedelta

  #世代間隔はtimedelta

  印刷(pd.Timedelta(日= 5、分= 50、秒= 20ミリ秒= 10マイクロ秒= 10、ナノ秒= 10))

  #5日00:50:20.010010

  #現在の時刻を取得します。

  今= pd.datetime.now()

  #50日後の日付現在の時刻を計算します

  DT =今+ pd.Timedelta(日= 50)

  プリント(F '現在時刻が50日の時間の後、{今}は{} DT')

  #現在の時刻は2019-06-0817です:59:59:50日2019-07-2817時間後31.726065、31.726065

  #のみ表示日付

  印刷(dt.strftime( '%Y-%m-%d' では))#2019年7月28日

  図5に示すように、周波数変換及び再サンプリング

  四半期ごとにインデックス値を表示し#asfreq

  #「DatetimeIndex」オブジェクトには属性「asfreq」がありません

  日付= pd.date_range( '2018年1月1日'、期間= 20、FREQ = 'D')

  tsdat_series = pd.Series(範囲(20)、インデックス=日付)

  tsp_series = tsdat_series.to_period( 'D')

  印刷(tsp_series.index.asfreq( 'Q'))

  日付= pd.period_range( '2018年1月1日'、期間= 20、FREQ = 'D')

  tsper_series = pd.Series(範囲(20)、インデックス=日付)

  印刷(tsper_series.index.asfreq( 'Q'))

  

  PeriodIndex([ '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、

  '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、

  '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、 '2018Q1'、

  '2018Q1'、 '2018Q1']、

  DTYPE = '期間[Q-DEC]'、FREQ = 'Q-DEC')

  

  四半期ごとの統計と表示#resample

  印刷(tsdat_series.resample( 'Q')。合計()。to_period( 'Q'))

  

  2018Q1 190

  FREQ:Q-DEC、DTYPE:int64モード

  

  毎週平均まとめる#groupby

  印刷(tsdat_series.groupby(ラムダX:x.weekday).mean())

  

  0 7.0

  1 8.0

  2 9.0

  3 10.0

  4 11.0

  5 12.0

  6 9.5

  DTYPE:のfloat64

  


ます。https://juejin.im/post/5cfe0230f265da1b8d161155で再現

おすすめ

転載: blog.csdn.net/weixin_34184158/article/details/91480357