繁体   English   中英

将 pandas timedelta 转换为以秒为单位显示

[英]Convert pandas timedelta to be displayed in seconds

我正在重新格式化数据框中的一些数据,我需要计算一个新的 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')

那也没有用。 一切都保持原样。

我怎样才能正确地做到这一点?

dt访问器上使用total_seconds()方法:

foo['DURATION_NEW'].dt.total_seconds()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM