Pandasでの時系列操作
python、主にpandasの基本的な使い方について、備忘録として記述していく。
まずはタイトルの通り、時系列操作について。
例1
あるデータフレームに年(Year)列と月(Month)列データが入っているとき、
この2つを年月として合わせて、データフレームのインデックスに割り当てる。
import pandas as pd from datetime import date time df.index = df.apply(lambda x: datetime(int(x.Year), int(x.Month), 1), axis=1)
例2
2012年1月から2016年12月まで、60ヶ月のリストデータを作成する。
以下の例は月ごとに区切られたものだが、freqに'D'を指定すると日ごと、'Y'を指定すると年ごとになる。
import pandas as pd index = pd.date_range('2012-1', periods=60, freq='M')
例3
データフレームの'date'という列に日別の時系列データが入っているとき、
月曜日から順に0, 1, 2, と数字を割り当てたあと、5(土曜)、6(日曜)を休日として定義し、
'DayStatus'という列でラベリングする。
#曜日列を追加 df['DayOfWeek'] = df['date'].apply(lambda x: x.weekday()) #平日休日判定の関数定義 def day_status(x): if x <= 4: return 0 #平日 else: return 1 #休日 #平日休日判定本番 df['DayStatus'] = df['DayOfWeek'].apply(lambda x: day_status(x))