PythonのPandasで曜日を取得する方法について

Python,イメージ

AI実装検定のご案内

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.dayofweek0〜6の整数(0=月曜日)整数
日本語の曜日表示map() を使って変換文字列(例:月)

活用シーン例

  • 曜日ごとの売上分析(週末 vs 平日)
  • 時系列予測モデルに曜日を特徴量として追加
  • 日報や業務レポートで曜日付きで日付を表示

以上、PythonのPandasで曜日を取得する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次