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 |