ysaz (ImanazaS) blog

最近はデータ分析や機械学習が中心。たまに音楽や書評。

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))