如何将datetime列相减得到的timedelta时间差转换为分钟数
解决方案
可以直接实现,不需要提前调整A、B列,你计算得到的C列是pandas默认生成的Timedelta时间差类型,内置方法可自动处理天数、微秒等不同粒度的单位,无需手动拆分文本处理分隔符。
转换步骤
- 第一步:先确认C列类型为Timedelta,若为字符串格式先做类型转换:
import pandas as pd df['C'] = pd.to_timedelta(df['C'])
- 第二步:直接调用
total_seconds()方法计算总秒数,除以60得到总分钟数:
# 保留小数分钟(包含微秒对应的分钟部分) df['C_minutes'] = df['C'].dt.total_seconds() / 60 # 如需取整为整数分钟 df['C_minutes'] = df['C'].dt.total_seconds() // 60
实现原理
total_seconds()会自动把时间差的所有单位(天、小时、分钟、秒、微秒)统一转换为总秒数:1天=86400秒、1小时=3600秒,累加后除以60就是完整的总分钟数,无需额外处理天数字段。
比如时间差1 days 02:30:00会自动计算为(86400 + 23600 + 3060)/60 = 1590分钟。
内容的提问来源于stack exchange,提问作者Enrique
相关产品推荐
相关产品推荐

