Python 将Timedelta从数据帧转换为秒值

Python 将Timedelta从数据帧转换为秒值,python,pandas,python-3.7,Python,Pandas,Python 3.7,我在pandas.DataFrame中有一个列,标题为Residuals,它的格式是timedelta(00:00:01.14611)。我在残差列中列出了47个值,我需要将它们全部转换回一个秒值(即1.14611)。我尝试了pd.to_numeric(df['resident'].dt.seconds,downcast='integer'),但没有成功,还有一些其他方法 任何输入都将不胜感激,因为我对使用Python和dataframes非常陌生。谢谢请查看文档。它本质上是两个datetime.

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

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

请查看文档。它本质上是两个
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[“剩余”].dt.total_seconds()

编辑:

请看一下文档。它本质上是两个
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[“剩余”].dt.total_seconds()

编辑:


df['restrain'].dt.total_seconds()
是您想要的。@nf95请再次检查列的数据类型
df['restrain'].dt.total_seconds()
是您想要的。@nf95请再次检查列的数据类型。这个方法给了我一个属性错误。AttributeError:只能对datetimelike使用.dt访问器values@nf95请使用更新的解决方案。如果helpedit仍然给我一个与.total_seconds()函数有关的属性错误,请向上投票。“Series object has no attribute”@nf95我使用lambda表达式添加了另一个解决方案seems您实际上没有一系列的timedelta。检查数据类型不幸的是,这个方法给了我一个属性错误。AttributeError:只能对datetimelike使用.dt访问器values@nf95请使用更新的解决方案。如果helpedit仍然给我一个与.total_seconds()函数有关的属性错误,请向上投票。“Series object has no attribute”@nf95我使用lambda表达式添加了另一个解决方案seems您实际上没有一系列的timedelta。检查数据类型