Pythonデータ分析 第4回勉強会資料 10章

16
Python for Data Analysis かわの まこと

Transcript of Pythonデータ分析 第4回勉強会資料 10章

Python for Data Analysisかわの まこと

扱うTime SeriesTimestamps• ある時間の瞬間

Fixed periods• 2007年1月や2010年1年間

Intervals• タイムスタンプで始めと終わりを示されている時間

Experiment or elapsed time• 特定の時間から計測される時間

2

日付と時間の型datetimeモジュール• マイクロ秒で日付と時間を保存する

timeモジュール,calenderモジュールも組み込みであるよ

3

Type Description

date グレゴリオ暦で年月日を保存

time 時間,分,秒,マイクロ秒を保存

datetime dateとtime両方保存

timedelta 2つのtimedeltaの差

文字列とdatetimeの変換datetime.strftime, strptime

dateutil.parse

pd.to_datetime

4

Type Description%Y 4桁の年%y 2桁の年%m 2桁の月[01, 12]%d 2桁の日[01, 31]%H 24時間[00, 23]%I 12時間[01, 12]%M 分[00, 59]%S 秒[00, 61]%w 曜日の整数表示[0(日曜), 6]%U 週[00, 53]最初の日曜が1週目%W 週[00, 53]最初の月曜が1週目%z UTCタイムゾーン%F %Y-%m-%dのショートカット%D %m/%d/%yのショートカット

Time Seriesの基礎最もベーシックなのは,TimeSeries(Seriesのサブクラス)

• 日付でインデックスされたSeries

• インデックスに年だけとかでもいける

• DataFrame型も同様にできる

5

データの範囲,頻度,移動大抵のタイムスタンプは一定じゃないはず• pd.data_range • shift • ts / ts.shift(1) -1 →変化率をみる

6

7

Alias Offset Type DescriptionD Day 日曜始まりB BusinessDay 月曜始まりH Hour 時間

T or min Minute 分S Second 秒

L or ms Milli ミリ秒(1/1000秒)U Micro マイクロ秒(1/1000000秒)M MonthEnd 月最後の日

BM BusinessMonthEnd 月最後の日(ビジネス)MS MonthBegin 月最初の日

BMS BusinessMonthBegin 月最初の日(ビジネス)W-MON, W-TUE, … Week 与えられた曜日

WOM-1MON, WOM-2MON, … WeekOfMonth 第◯週の曜日Q-JAN, Q-FEB, … QuaterEnd 後

BQ-JAN, BQ-FEB, … BusinessQuaterEnd はQS-JAN, QS-FEB, … QuaterBegin や

BQS-JAN, BQS-FEB, … BusinessQuaterBegin っA-JAN, A-FEB, … YearEnd て

BA-JAN, BA-FEB, … BusinessYearEnd みAS-JAN, AS-FEB, … YearBegin よ

BAS-JAN, BAS-FEB, … BusinessYearBegin う

タイムゾーンtz_convert, tz_localizeを使う

• tz_localizeはタイムゾーンを固定

• tz_convertは任意のタイムゾーンに変更

• 違うタイムゾーンでやってもUTCに統一される

8

期間と期間の計算日とか月とか四半期とか年とか

9

四半期について

10

その他の変換系timestampとperiodsの変換

• to_period()とto_timestamp()

配列からPeriodIndexへの変換

11

Resampling

12

Argument Descriptionfreq リサンプリングの間隔(文字列かDateOffset)例:’M’ ‘5min’ Second(15)

how=‘mean’ 値をまとめるときの関数.’mean’’ohlc’:平均,’first’’last’’median’’max’’min’axis=0 リサンプリングする方向

fill_mehthod=None アップサンプリングするとき補完挿入する方法,’ffill’’bfill’closed=‘right’ ダウンサンプリングするときどのインターバルの終わりを閉めるか’left’label=‘right’ ダウンサンプリングのとき集めたデータにラベリングどうするかloffset=None 時間調整をどうするか’-1s’やSecond(-1)→ラベルを1秒前に移動するlimit=None 前埋め,後埋めの時の最大で埋める数kind=None 集計する種類.’period’か’timestamp’

convention=None 低い間隔から高い間隔にする時どう変換するか

OHLC: Open High Low Close

ダウンサンプリング

13

アップサンプリングなどサンプリング時に一定のルールが有る• ダウンサンプリング:必ず元の間隔より小さくする

• アップサンプリング:必ず下の間隔より大きくする

14

Time Series Plotting

15

Moving Window Function

16

Function Descriptionrolling_count 移動カウント(一定間隔の数を数える)rolling_sum 移動合計

rolling_mean 移動平均rolling_median 移動中央値

rolling_var, rolling_std 移動分散,移動標準偏差rolling_skew, rolling_kurt 移動歪度,移動尖度rolling_min, rolling_max 移動最小値,移動最大値

rolling_quantile 移動分位点rolling_corr, rolling_cov 移動相関係数,移動共分散

rolling_apply 移動◯◯(配列の関数)ewma 指数加重移動平均

ewmvar, ewmstd 指数加重移動分散,指数加重移動標準偏差ewmcorr, ewmcov 指数加重移動相関関数,指数加重移動共分散