You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从非数值型日期列提取日、月、年列以适配房价预测回归问题?

嘿,这个问题我太懂了!处理这种编码不规范的日期列完全没必要删除,用Python的pandas就能轻松提取出你需要的日、月、年信息,完美适配你的房价预测回归模型,下面给你一步步拆解操作:

第一步:把不规范日期转为标准datetime格式

不管你的日期列是啥乱七八糟的格式(比如混着"2023/10/05"、"Oct-5-2023"、"2023年10月5日"这种),pandas的to_datetime()函数都能自动识别,还能优雅处理无效值:

import pandas as pd

# 假设你的数据框名为df,日期列叫"raw_date"
df['standard_date'] = pd.to_datetime(df['raw_date'], errors='coerce')

这里的errors='coerce'参数很关键——它会把识别不了的无效日期转换成NaT(Not a Time),既不会让程序崩溃,还能方便你后续排查或处理异常值。

第二步:提取日、月、年生成新列

有了标准的datetime类型列之后,直接用dt属性就能轻松提取各个时间分量:

# 提取日,生成"day"列(数值型,1-31)
df['day'] = df['standard_date'].dt.day

# 提取月:可以选数字格式或名称格式
df['month_num'] = df['standard_date'].dt.month  # 数字形式(1-12)
df['month_name'] = df['standard_date'].dt.month_name()  # 英文名称(比如October)

# 提取年,生成"year"列(数值型,比如2023)
df['year'] = df['standard_date'].dt.year
特殊情况处理:超奇葩格式的日期

如果你的日期列带了多余字符(比如"2023-10-05 星期三"、"【2023/10/05】"这种),可以先做字符串清洗再转格式:

# 示例:去掉日期后面的星期字符串
df['cleaned_date'] = df['raw_date'].str.replace(r' \w+$', '', regex=True)
# 再转成标准datetime
df['standard_date'] = pd.to_datetime(df['cleaned_date'])

放心,整个操作下来你原来的日期列会完整保留,同时新增的日、月、年列都是数值型(或可编码的类别型),刚好能作为回归模型的有效特征~

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

火山引擎 最新活动