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

替换DataFrame日期时间列多个相对时间值为标准datetime格式

葡萄牙语相对日期转标准datetime解决方案

实现思路

根据给出的转换规则,核心逻辑为:

  • 以2021年8月1日为基准日期
  • 分钟、小时、1天三类相对时间直接返回基准日期
  • 带月单位的相对时间,减去对应月份后取当月1日作为结果

代码实现

依赖库导入

import pandas as pd
from dateutil.relativedelta import relativedelta
from datetime import datetime

自定义转换函数

# 配置基准日期与单位映射
base_date = datetime(2021, 8, 1)

def convert_date(raw_val):
    # 拆分数值与单位
    num, unit = raw_val.strip().split(maxsplit=1)
    num = int(num)
    # 处理天及以内的时间单位
    if unit in ['minutos', 'horas', 'dia']:
        return base_date
    # 处理月单位
    elif unit in ['mês', 'meses']:
        offset_date = base_date - relativedelta(months=num)
        # 对齐示例规则,返回当月1日
        return datetime(offset_date.year, offset_date.month, 1)
    # 未知单位返回空值
    return pd.NaT

应用到DataFrame

# 转换后列直接为datetime64类型
df['Data Posted'] = df['Data Posted'].apply(convert_date)

补充说明

如果基准日期不是固定值(比如以爬虫执行当日为基准),只需把base_date的赋值改为datetime.today()即可,其余逻辑无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:27:00