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

Pandas将可转时间戳的object列转为UTC时间戳并忽略不可转换列

实现代码
import pandas as pd

# 构造示例数据集
data = {'timestamp_1': ['36:00.0', '46:44.0', '20:59.0', '57:27.0', '51:18.0'],
        'r1': [-1, 6, 10, 0, 0],
        'timestamp': ['18-06-2020 09:36:00', 
                      '19-06-2020  09:36:00',
                      '20-06-2020 09:36:00',
                      '21-06-2020 09:36:00',
                      '22-06-2020 09:36:00']
       }
df = pd.DataFrame(data=data)

# 批量转换符合要求的列
for col in df.select_dtypes(include='object').columns:
    # 尝试解析为UTC时间,无法解析的内容标记为空时间NaT
    temp_col = pd.to_datetime(df[col], utc=True, errors='coerce')
    # 只要列内存在可解析的有效时间,就用转换后的结果替换原列,否则保留原列
    if temp_col.notna().any():
        df[col] = temp_col
逻辑说明
  • 仅筛选object类型列做转换,不处理数值、布尔等其他类型的列,减少不必要的计算
  • pd.to_datetime传入utc=True参数,所有解析成功的时间会直接转为UTC标准时区的时间戳格式
  • 传入errors='coerce'时,单条数据解析失败不会中断整体流程,只会把该条值标记为空时间NaT
  • 转换后校验列内是否存在有效时间值,整列都无法解析为时间的列会被直接保留,不会做替换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:15:30