Pythonのチュートリアル(Pythonの学習ルート):分析に基づくパンダライブラリー - 詳細な処理の時系列

Pythonのチュートリアル(Pythonの学習ルート):分析に基づくパンダライブラリー - 詳細な処理の時系列


 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(): {date_rng} ')
""」
DATE_RANGE():
DatetimeIndex([' 2019 -01-31' 、 '2019年2月28日'、 '2019年3月31日'、 '2019年4月30日'、
'2019年5月31日'、 '2019年6月30日'、「2019から07 -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(): {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 (): {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」週period_range(): {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 -02-10'
'2019年2月11日/ 2019年2月17日'、 '2019年2月18日/ 2019年2月24日'、
'2019年2月25日/ 2019年3月3日'、「2019 -03-04 / 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日午後12時00分○○秒'、FREQ = 'H'、期間= 12)
印刷(f'hour DATE_RANGE() : {date_rng} ')
""」
時間DATE_RANGE():
DatetimeIndex([ '2019年1月1日午前0時00分00秒'、 '2019年1月1日1時00分00秒'、
「2019年1月1日02 :00:00' 、「2019年1月1日午前3時00分:00' 、
'2019年1月1日午前四時00分00秒'、 '2019年1月1日5時00分00秒'、
'2019年1月1日06:00:00'、「2019年1月1日07: 0' :00、
「2019年1月1日午前8時○○分00秒」、「2019年1月1日午前9時00分00秒」、
「2019年1月1日10時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(): {period_rng} ')
""」
時間period_range():
PeriodIndex([ '2019年1月1日00:00'、 '2019年1月1日01:00'、「2019- 01-01 02:00'
'2019年1月1日03:00'、 '2019年1月1日04:00'、 '2019年1月1日05:00'、
「2019年1月1日06:00 「 『2019年1月1日午前7時00』、 『2019年1月1日八時』、
『2019年1月1日午前9時』、 『2019年1月1日10:00』、」2019から01 -01 11:00' ]、
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分00秒
TS = pd.Timestamp(DT(2019,1,1、時間= 0分= 1、秒= 1))
プリント(f'pd.Timestamp() - 2:{} TS ')
#pd.Timestamp() - 2 :2019年1月1日午後12時01分01秒
TS = pd.Timestamp( "2019年1月1日0:1:1")
印刷(f'pd.Timestamp() - 3:{} TS ')
#PD。タイムスタンプ() - 3:2019年1月1日0時01分01秒
プリント(f'pd.Timestamp() -タイプ:{タイプ(TS)} ')
#pd.Timestamp() -タイプ:<クラス'パンダ。 _libs.tslibs.timestamps.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日午前0時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日0時01分01秒
プリント(f'pd.to_datetime() -タイプ:{タイプ(DT)} ')
#pd.to_datetime() -タイプ:<クラスのpandas._libs.tslibs.timestamps.Timestamp'>
#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() -タイプ:<クラスのpandas._libs.tslibs.period.Period '>

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

期間#定義された期間
pd.Periodあたり=( '2019')
を印刷(f'pd.Period():{}あたり')
#1 pd.Period():2019
per_del = pd.Period(' 2019「) - PD。期間( '2018')
代わって)整数-印刷(2018 f'2019及び{per_del}の間隔は「)#+、直接であってもよい
#1 2019とスペーサ2018の
タイムスタンプ#1に変換し
、印刷(per.to_timestamp( =どのように'終了'))#2019年12月31日0時00分00秒
印刷(per.to_timestamp(=どのように'スタート'))#2019年1月1日00:00:00

4、発生間隔はtimedelta

#1世代間隔はtimedelta 
印刷(pd.Timedelta(日= 5、= 50分、秒20は=、= 10ミリ秒、マイクロ秒= 10、)10ナノ秒=。)
#00 5日間:50:20.010010
#現在の時刻を取得
=今pd.datetime.now()
は、現在の日付が50日後時間算出
DT =今+ pd.Timedelta(= 50日)
印刷(F 'は50日時間dt}は{た後、{}今現在の時間である')
現在の時刻は2019-06-0817です:59:59:31.726065 50日時点2019-07-2817後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')SUM()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
" ""

パンダの話あなたのチュートリアルとそこにする前に、我々は戻って理解することができるものを確認するための場所を持っていない、より多くのPythonのチュートリアルPythonの学習ルートは、あなたと共有していきます!

おすすめ

転載: www.cnblogs.com/cherry-tang/p/11002173.html