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

如何为DataFrame添加列以提取Start_Time对应的星期几?

嘿,这个需求超常见的,用Pandas几步就能搞定!我给你拆解一下具体操作:

第一步:确保时间列是datetime格式

首先得确认你的Start_Time列是datetime类型——只有这种类型才能调用Pandas内置的时间相关方法。如果当前这列是字符串格式,先执行转换:

import pandas as pd
df['Start_Time'] = pd.to_datetime(df['Start_Time'])

Pandas会自动识别你给出的YYYY-MM-DD HH:MM:SS格式,完全不用额外指定格式参数~

第二步:添加星期几的列

根据你想要的输出形式,有三种常用实现方式:

方式1:获取数字形式的星期(0=周一,6=周日)

如果你需要用数字代表星期(方便后续统计或计算),可以用dt.weekday:

df['Weekday_Num'] = df['Start_Time'].dt.weekday

注:如果想要1-7的数字(1=周一,7=周日),换成dt.isoweekday()即可

方式2:获取英文星期名称

直接获取可读性更强的英文星期名,用dt.day_name():

df['Weekday_Name'] = df['Start_Time'].dt.day_name()

比如你给出的2016-02-08会返回Monday

方式3:获取中文星期名称

如果需要中文的星期标识,可以自己做个映射表,配合map()方法实现:

weekday_cn_map = {0: '周一', 1: '周二', 2: '周三', 3: '周四', 4: '周五', 5: '周六', 6: '周日'}
df['Weekday_CN'] = df['Start_Time'].dt.weekday.map(weekday_cn_map)

完整示例代码

把上面的步骤整合起来,用你的测试数据跑一遍:

import pandas as pd

# 构造你的示例DataFrame
data = {'Start_Time': ['2016-02-08 05:46:00', '2016-02-08 06:07:59', '2016-02-08 06:49:27', '2016-02-08 07:23:34']}
df = pd.DataFrame(data)

# 转换为datetime类型
df['Start_Time'] = pd.to_datetime(df['Start_Time'])

# 添加不同形式的星期列
df['Weekday_Num'] = df['Start_Time'].dt.weekday
df['Weekday_Name'] = df['Start_Time'].dt.day_name()
df['Weekday_CN'] = df['Start_Time'].dt.weekday.map({0: '周一', 1: '周二', 2: '周三', 3: '周四', 4: '周五', 5: '周六', 6: '周日'})

print(df)

运行后你会得到这样的结果:

Start_Time  Weekday_Num Weekday_Name Weekday_CN

0 2016-02-08 05:46:00 0 Monday 周一
1 2016-02-08 06:07:59 0 Monday 周一
2 2016-02-08 06:49:27 0 Monday 周一
3 2016-02-08 07:23:34 0 Monday 周一

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 07:52:35