首页 > 解决方案 > 将 Timedelta 从 Pandas 数据帧转换为秒值

问题描述

pandas.DataFrame我在标题中有一个列,Residuals它是一种timedelta格式(00:00:01.14611例如)。我在列中有 47 个列出的值,Residuals我需要将它们全部转换回仅一秒的值(即1.14611)。我试过pd.to_numeric(df['Residual'].dt.seconds, downcast='integer')了,但没有成功,还有其他一些方法。

任何输入都将不胜感激,因为我对使用 Python 和 pandas 数据框非常陌生。谢谢

标签: pythonpandaspython-3.7

解决方案


请查看时间增量对象文档。它本质上是两个datetime.date/datetime.datetime对象的区别。

此代码段将很容易地解释您想如何解决您的问题:

>>>from datetime import datetime
>>>d1 = datetime.now()
>>>d2 = datetime.now()

>>>d2-d1
datetime.timedelta(0, 8, 14319) 
>>>(d2-d1).total_seconds() 
8.014319

你应该尝试做df["Residual"].dt.total_seconds()

编辑:

df['Residual'].apply(lambda x: x.total_seconds())


推荐阅读