如何解决转换熊猫timedelta以秒为单位显示
我正在尝试重新格式化数据框中的某些数据,我需要为新的timedelta列计算一个值,方法是将事件的开始日期与序列上移一行时的开始日期相减:>
data['DURATION_NEW'] = (data['START'] - data['START'].shift(-1))
这项工作正常,并创建了一个timedelta列,但其中的数据格式很奇怪:
foo['DURATION_NEW']
Out[80]:
0 -1 days +23:53:30
1 -1 days +15:35:00
2 -1 days +23:50:00
3 -1 days +23:49:00
4 -1 days +23:53:30
1459 -1 days +23:47:00
1461 -1 days +23:51:00
1462 -1 days +22:08:01
1463 -1 days +23:39:30
1464 NaT
Name: DURATION_NEW,Length: 1406,dtype: timedelta64[ns]
我需要以某种方式将该数据转换为以秒为单位显示的数据。首先,我尝试将其转换为日期时间,但是由于某种原因,出现了dtype timedelta64[ns] cannot be converted to datetime64[ns]
错误。
接下来,我尝试手动重新转换它,同时指定我希望它在几秒钟之内:
foo['DURATION_NEW'] = pd.to_timedelta(foo['DURATION_NEW'],unit='sec')
那也不起作用。一切都保持不变。
如何正确执行此操作?
解决方法
在total_seconds()
访问器上使用dt
方法:
foo['DURATION_NEW'].dt.total_seconds()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。