You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据年、月、日计算星期几并添加为数据集列?

通过年、月、日计算星期几的实现方案

Python 代码实现(适配表格数据集)

如果你的数据集是表格形式(比如Excel/CSV导入的Pandas DataFrame),以下代码可以直接计算星期几,同时自动处理无效日期:

import pandas as pd
from datetime import datetime

# 替换为你的实际数据集读取方式
df = pd.read_csv("your_data.csv")  # 或从Excel读取:pd.read_excel("your_data.xlsx")

# 定义计算星期几的函数
def calculate_weekday(year, month, day):
    try:
        # 构造日期对象
        date_obj = datetime(year, month, day)
        # 映射中文星期名称,按需调整格式
        weekday_map = {
            0: "星期一",
            1: "星期二",
            2: "星期三",
            3: "星期四",
            4: "星期五",
            5: "星期六",
            6: "星期日"
        }
        return weekday_map[date_obj.weekday()]
    except ValueError:
        return "无效日期"

# 给数据集新增「星期几」列
df["星期几"] = df.apply(lambda row: calculate_weekday(row["年"], row["月"], row["日"]), axis=1)

# 查看结果
print(df.head())

核心说明

  1. 规避手动公式错误:无需自己实现蔡勒公式这类复杂逻辑,datetime是Python官方提供的日期处理工具,准确性有保障
  2. 自动校验日期有效性:如果数据中存在「2月30日」「13月15日」这类无效日期,函数会返回「无效日期」,避免程序崩溃
  3. 星期格式灵活调整:
    • date_obj.weekday():返回0(周一)到6(周日)的数字
    • date_obj.isoweekday():返回1(周一)到7(周日)的数字
    • 上述代码用字典映射成中文名称,可按需修改为数字或英文

非Pandas场景的适配

如果你的数据是普通列表/元组,可参考以下逻辑:

from datetime import datetime

# 示例数据列表
date_list = [(2024, 3, 1), (2024, 2, 29), (2024, 13, 1)]

weekday_map = {0: "周一", 1: "周二", 2: "周三", 3: "周四", 4: "周五", 5: "周六", 6: "周日"}

for year, month, day in date_list:
    try:
        dt = datetime(year, month, day)
        print(f"{year}-{month}-{day}:{weekday_map[dt.weekday()]}")
    except ValueError:
        print(f"{year}-{month}-{day}:无效日期")

内容的提问来源于stack exchange,提问作者Parth Khandenath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:06:27