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

如何为分栏存储日期的DataFrame添加day.of.the.week列

解决方法:从拆分日期列生成星期几列

别担心,这个问题很好解决!我们可以把分散的日、月、年列合并成标准的日期对象,再提取对应的星期几名称,具体步骤如下:

步骤1:准备环境与数据

首先确保你已经导入了pandas库,先把你的数据整理成标准的DataFrame:

import pandas as pd

# 还原你的原始DataFrame
data = {
    'Day.of.the.month': [1, 2, 3, 4],
    'Month': ['January', 'February', 'April', 'January'],
    'Year': [2005, 2008, 2009, 2016],
    'Items': ['Nothing', 'Food', 'Nothing', 'Bus'],
    'Amount.in.euros': [0.00, 7.78, 0.00, 2.00]
}
df = pd.DataFrame(data)

步骤2:合并日期列并转换为datetime格式

利用pd.to_datetime()方法,将分散的日、月、年列合并成标准日期对象。这里要注意月份是英文全称,所以用%B作为格式匹配符:

# 合并三列为日期字符串,再转换为datetime类型
df['date'] = pd.to_datetime(
    df['Day.of.the.month'].astype(str) + ' ' + df['Month'] + ' ' + df['Year'].astype(str),
    format='%d %B %Y'  # %d=日,%B=英文全拼月份,%Y=四位数年份
)

步骤3:生成星期几列

通过dt.day_name()方法提取星期几的英文名称,再转成小写以匹配你需要的saturday、sunday格式:

df['day.of.the.week'] = df['date'].dt.day_name().str.lower()

步骤4:(可选)清理中间列

如果不需要临时的date列,可以删除它:

df.drop('date', axis=1, inplace=True)

最终结果

处理后的DataFrame会是这样的:

Day.of.the.monthMonthYearItemsAmount.in.eurosday.of.the.week
1January2005Nothing0.00saturday
2February2008Food7.78saturday
3April2009Nothing0.00friday
4January2016Bus2.00monday

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:59:14