10 時系列分析

レシピ82 Pythonとpandasの日付ツールの違いの理解(P269)


(1)まずdatetimeモジュールをインポートして、date,time,datetimeオブジェクトをつくる


(2)datetimeモジュールの別のデータ型、timedeltaオブジェクトを作って出力する


(3)手順(1)のdate、datetimeオブジェクトに、手順2のtimedeltaを加える


(4)timeオブジェクトにtimedeltaを加算することはできない


(5)pandasのナノ秒精度のTimestampオブジェクトは柔軟で広範囲の入力に対応


(6)


(7)


(8)


(9)


(10)


(11)


レシピ83 時系列を賢くスライシング(P275)

(1)


(2)


(3)


(4)


(5)1つの日付だけでなく、ある月、年、時間で選ぶことができる


(6)選択文字列は、月の英字名でもよい


(7)月の形式にはさまざまなパターンがある


(8)スライス表記を使って、データの範囲を指定する


(9)


レシピ84 DatetimeIndexでだけ働くメソッドを使う(P279)


(1)REPORTED_DATEカラムをインデックスにしてDatetimeIndexになっていることを確認する


(2)between_timeを使い、午前2時から5時までに発生した全犯罪を日付と関係なく抽出

cf.上記をdatetimeモジュールのtimeオブジェクトで表現した場合


(3)at_timeで指定した時刻の日付をすべて取得


(4)

cf) 以下でわかるように起点の「first_date」は、日時分から開始されている


(5)


(6)


(7) (6)をもっと簡単な方法で、最初の6ヶ月分のデータをスライシングできる


(8)オフセットエイリアス


レシピ85 週ごとの犯罪件数(P283)


(1)crime hdf5データセットを読み込み、インデックスをREORTED_DATEに設定、ソートしておく


(2)

cf.resampleのメソッドは以下がある


(3)週ごとの犯罪件数


(4)(3)が正しいかを確認


(5)アンカーオフセットを使い、日曜以外で週を終わるようにした結果をみる


(6)


補足: TimeStampの列をインデックスにセットしたくない場合


レシピ86 週ごとの犯罪と交通事故を別々に集計(P286)


(1)読み込み


(2)resampleで四半期のグループ分け後、各グループのIS_CRIMEとIS_TRAFFICの和を別々に取る


(3)


(4)結果を第2四半期データが正しいかどうかで検証する


(5)groupbyでも(2)と同じ結果が得られる(FutureWarning出るが)


(6)犯罪と交通事故の傾向を分析するためにプロットする


補足:犯罪と交通事故の増加パーセントをプロットする


レシピ87 曜日と年での犯罪件数の測定(P289)


(1)読み込む、REPORTED_DATEはそのまま


(2)

注意:weekday_nameは使えない。今はday_name()


(3)週末は犯罪も交通事故も少ない。データを整理して棒グラフ化


(4)年ごとの件数を数える