pandasで日付から祝日を含めた曜日を取得する方法


jupyterで統計しているときに、説明変数として曜日を使いたくなった。
ただし、祝日だけは別扱いしたい。
こんな時に使える方法です。

import pandas as pd
import japandas as jpd
import locale
locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8')

#日付を含むデータフレームがある
df = pd.DataFrame(jpd.date_range(u'2016年5月1日', u'2018年12月10日', freq='D'))

# japandasにある祝日カレンダを拾ってくる
jhc =  jpd.JapaneseHolidayCalendar()

# 祝日カレンダにあれば「祝」を、なければ曜日を格納
df[1] = [('祝') if  t in jhc.holidays() else (t.strftime('%a')) for t in df[0]]

# 曜日の列ができる
df

こんな感じで祝日を含む曜日データが得られます

これだけにずっと悩んでしまったのでメモ。
もっといい方法があれば教えてください