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

如何将DataFrame的FirstResponseTime解析为秒?datetime报错解决及资料推荐

问题解决与学习资料推荐

一、代码错误修复与时间转换方案

你的代码报错有两个核心原因:一是datetime.strptime调用方式错误(strptime是datetime模块里datetime类的方法,需写成datetime.datetime.strptime);二是strptime仅能处理单个字符串,无法直接作用于DataFrame的Series列,且未考虑NaN缺失值。

推荐用Pandas内置的pd.to_timedelta函数处理,高效且自动兼容NaN:

import pandas as pd

# 将FirstResponseTime转换为timedelta类型(自动识别"Xd HH:MM:SS"格式)
df['FirstResponseTime'] = pd.to_timedelta(df['FirstResponseTime'])
# 提取总秒数,NaN会保留为缺失值
df['FirstResponseTime_sec'] = df['FirstResponseTime'].dt.total_seconds()

如果想手动实现转换逻辑(便于理解底层原理),可以用apply结合自定义函数:

from datetime import datetime
import pandas as pd

def time_to_seconds(time_str):
    if pd.isna(time_str):
        return pd.NA
    # 拆分天数和时分秒部分
    day_part, time_part = time_str.split('d ')
    days = int(day_part)
    # 解析时分秒
    t = datetime.strptime(time_part, "%H:%M:%S")
    # 计算总秒数
    return days * 86400 + t.hour * 3600 + t.minute * 60 + t.second

df['FirstResponseTime_sec'] = df['FirstResponseTime'].apply(time_to_seconds)

二、时间数据处理学习资料

  • Pandas官方文档「时间序列」章节:重点关注Timedelta、DatetimeIndex相关内容,里面有大量针对DataFrame时间数据的转换、运算、缺失值处理示例,是最权威的参考资料。
  • 《Python for Data Analysis》(Wes McKinney 著):Pandas创始人编写的经典书籍,有专门章节系统讲解时间序列数据处理,从基础概念到实战技巧全覆盖,适合打牢基础。
  • 国内数据分析专栏/公众号的时间序列专题:不少专注于Python数据分析的平台会推出贴合国内使用场景的教程,比如处理非标准时间格式、批量转换时间数据等,实用性较强。

内容的提问来源于stack exchange,提问作者Gustavo Felippe de Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:35:19