python_analytics

主にpythonやライブラリーを使ったデータ解析、機械学習、統計学などについて書いていきます

python pandas 集計処理(時系列)

pandas 集計処理(時系列の関数)について

■時系列の変換について
カテゴリ型は、数値型に次いでよく使う型。pythonではastype関数はデータ型を変換する関数。

import numpy as np
import pandas as pd
ID time セッション
328667572 20180331 38
70373573 20180324 37
1839656582 20180312 28
1471882803 20180310 22
302325623 20180320 22

↓IDごとにtimeをグループ化

tii = k.groupby('ID')['time'].apply(list)
ID time
9460 [2018-03-14 15:00:00, 2018-03-25 20:00:00]
72625 [2018-03-15 21:00:00, 2018-03-13 20:00:00]
85657 [2018-03-13 14:00:00, 2018-03-09 19:00:00, 201...
86703 [2018-03-15 00:00:00, 2018-03-15 03:00:00]
106015 [2018-03-28 00:00:00, 2018-03-14 18:00:00, 201...

↓Seriesを使ってtime要素を列方向に追加。

bb["time"].apply(pd.Series)
ID 0 1
9460 2018/3/14 15:00 2018/3/25 20:00
72625 2018/3/15 21:00 2018/3/13 20:00
85657 2018/3/13 14:00 2018/3/9 19:00
86703 2018/3/15 0:00 2018/3/15 3:00
106015 2018/3/28 0:00 2018/3/14 18:00

↓0と1のカラムの差分jisaを抽出。

sample2["jisa"]=(sample2[0]-sample2[1]).astype("timedelta64[D]")
ID 0 1 jisa
9460 2018/3/14 15:00 2018/3/25 20:00 -12
72625 2018/3/15 21:00 2018/3/13 20:00 2
85657 2018/3/13 14:00 2018/3/9 19:00 3
86703 2018/3/15 0:00 2018/3/15 3:00 -1
106015 2018/3/28 0:00 2018/3/14 18:00 13

↓カラム1にある要素を曜日として抽出。

sample2["youbi"]=sample2[1].dt.dayofweek
ID 1 youbi
9460 2018/3/14 15:00 2
72625 2018/3/15 21:00 3
85657 2018/3/13 14:00 1
86703 2018/3/15 0:00 3
106015 2018/3/28 0:00 2
111931 2018/3/7 9:00 2