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

基于日期范围更新Pandas DataFrame时间列及日期列的实现需求

处理Pandas DataFrame的GMT时间戳夏令时适配与日期调整

需求概述

已加载大文件并生成Pandas DataFrame,需完成两个核心操作:

  • 夏令时适配:GMT时间戳冬季加7小时,夏季加6小时
  • 日期调整:若调整后的时间晚于16:00,将Creation_Date列日期加1天

解决方案1:基于时区自动判断夏令时(推荐)

利用Pandas时区处理功能自动识别夏令时,无需手动维护时间区间,准确性更高:

import pandas as pd

def adjust_time_and_date(df, time_col='Confirmation_Time', date_col='Creation_Date'):
    # 转换时间列为UTC(GMT)标准datetime类型
    df[time_col] = pd.to_datetime(df[time_col], utc=True)
    
    # 转换到目标时区(以美国山地时区为例,匹配冬加7、夏加6的需求)
    # 若你的目标时区不同,替换为对应时区字符串(如'Europe/London')
    local_time = df[time_col].dt.tz_convert('US/Mountain')
    
    # 根据夏令时状态调整GMT时间戳
    df[time_col] = df[time_col] + pd.to_timedelta(
        local_time.dt.is_dst.map({True: 6, False: 7}), 
        unit='h'
    )
    
    # 处理Creation_Date:时间晚于16:00则日期加1天
    df[date_col] = pd.to_datetime(df[date_col])
    late_hour_mask = local_time.dt.hour > 16
    df.loc[late_hour_mask, date_col] += pd.DateOffset(days=1)
    
    return df

代码说明

  • 时区转换:通过tz_convert将GMT时间转为目标时区,利用dt.is_dst自动识别夏令时状态
  • 时间偏移:根据夏令时映射对应的小时偏移量,完成GMT到本地时间的转换
  • 日期调整:基于转换后的本地时间判断是否需要加1天,避免时区偏移导致的判断误差

解决方案2:手动定义夏令时时间段

若无需依赖时区数据库,可手动指定夏令时的日期区间(示例为每年3-10月):

import pandas as pd

def adjust_time_and_date(df, time_col='Confirmation_Time', date_col='Creation_Date'):
    # 转换时间列为datetime类型
    df[time_col] = pd.to_datetime(df[time_col])
    
    # 手动标记夏令时区间(可根据实际需求修改月份范围)
    is_dst = (df[time_col].dt.month >= 3) & (df[time_col].dt.month <= 10)
    
    # 调整GMT时间戳
    df[time_col] = df[time_col] + pd.to_timedelta(
        is_dst.map({True: 6, False: 7}), 
        unit='h'
    )
    
    # 调整Creation_Date
    df[date_col] = pd.to_datetime(df[date_col])
    late_hour_mask = df[time_col].dt.hour > 16
    df.loc[late_hour_mask, date_col] += pd.DateOffset(days=1)
    
    return df

使用方式

直接传入你的DataFrame即可完成批量处理:

# 假设你的DataFrame名为df_processed
df_processed = adjust_time_and_date(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:45:26