PythonのPandasを使って曜日を取得する方法について、初心者にもわかりやすく丁寧に解説します。
曜日を取得する場面は、データ分析や日付処理において頻繁に出てくる重要なスキルです。
目次
Pandasで曜日を取得する方法
Pandasでは、datetime
型に変換された日付データに対して、曜日を取得するための便利な属性やメソッドが用意されています。
主に以下の方法があります。
dt.day_name()
:英語で曜日名を取得(例:Monday, Tuesday)
import pandas as pd
# 日付データの例
df = pd.DataFrame({
'date': pd.to_datetime(['2025-07-14', '2025-07-15', '2025-07-16'])
})
# 曜日名を取得
df['weekday_name'] = df['date'].dt.day_name()
print(df)
出力例
date weekday_name
0 2025-07-14 Monday
1 2025-07-15 Tuesday
2 2025-07-16 Wednesday
dt.weekday
または dt.dayofweek
:曜日を0〜6の整数で取得(0=月曜日)
df['weekday_num'] = df['date'].dt.weekday # または .dt.dayofweek でもOK
print(df)
出力例
date weekday_num
0 2025-07-14 0
1 2025-07-15 1
2 2025-07-16 2
この整数は以下のように対応しています。
曜日 | 数字 |
---|---|
月曜日 | 0 |
火曜日 | 1 |
水曜日 | 2 |
木曜日 | 3 |
金曜日 | 4 |
土曜日 | 5 |
日曜日 | 6 |
日本語の曜日を表示したい場合(カスタム対応)
Pandasの day_name()
は英語の曜日を返すので、日本語で「月」「火」「水」などを表示したい場合は、マッピングする必要があります。
# 英語→日本語の変換辞書
weekday_map = {
'Monday': '月',
'Tuesday': '火',
'Wednesday': '水',
'Thursday': '木',
'Friday': '金',
'Saturday': '土',
'Sunday': '日'
}
df['weekday_ja'] = df['weekday_name'].map(weekday_map)
print(df)
出力例
date weekday_name weekday_ja
0 2025-07-14 Monday 月
1 2025-07-15 Tuesday 火
2 2025-07-16 Wednesday 水
補足:datetime型への変換が必要
Pandasで曜日を取得するには、対象の列が datetime64[ns]
型である必要があります。
もし文字列で読み込まれている場合は、必ず pd.to_datetime()
で変換しましょう。
df['date'] = pd.to_datetime(df['date'])
まとめ
方法 | 内容 | 出力 |
---|---|---|
dt.day_name() | 英語の曜日名(例:Monday) | 文字列 |
dt.weekday / dt.dayofweek | 0〜6の整数(0=月曜日) | 整数 |
日本語の曜日表示 | map() を使って変換 | 文字列(例:月) |
活用シーン例
- 曜日ごとの売上分析(週末 vs 平日)
- 時系列予測モデルに曜日を特徴量として追加
- 日報や業務レポートで曜日付きで日付を表示
以上、PythonのPandasで曜日を取得する方法についてでした。
最後までお読みいただき、ありがとうございました。