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

如何在Python DataFrame中计算两列时间戳的秒级差值并新增列

计算DataFrame中时间字符串的秒级差值

当然可以完成这个操作,但不能直接对字符串类型的时间列做差值计算,需要先将字符串转换为可计算的时间类型,再进行差值运算。以下是具体实现步骤:

步骤1:准备数据(模拟你的df1)

import pandas as pd

# 构造与你描述一致的字符串类型DataFrame
df1 = pd.DataFrame({
    'A': ['23:14:25', '23:14:32'],
    'B': ['23:16:34', '23:19:44'],
    'C': ['90', '91']
})

步骤2:转换时间列并计算秒级差值

如果需要D列存储实际的秒数差值(而非表达式字符串),执行以下代码:

# 将A、B列的字符串转为datetime类型(指定格式为时分秒)
df1['A_datetime'] = pd.to_datetime(df1['A'], format='%H:%M:%S')
df1['B_datetime'] = pd.to_datetime(df1['B'], format='%H:%M:%S')

# 计算时间差并转换为总秒数,存入D列
df1['D'] = (df1['B_datetime'] - df1['A_datetime']).dt.total_seconds()

# 移除中间辅助列,得到最终的df2
df2 = df1.drop(['A_datetime', 'B_datetime'], axis=1)

运行后df2的结果为:

A         B   C      D
0  23:14:25  23:16:34  90  129.0
1  23:14:32  23:19:44  91  312.0

可选:如果需要D列存储表达式字符串

如果你的需求是让D列显示(B-A)的表达式格式,直接用字符串拼接即可:

df1['D'] = '(' + df1['B'] + '-' + df1['A'] + ')'
df2 = df1.copy()

此时df2的结果完全符合你给出的预期结构:

A         B   C                  D
0  23:14:25  23:16:34  90  (23:16:34-23:14:25)
1  23:14:32  23:19:44  91  (23:19:44-23:14:32)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:15:25