给定熊猫中只有小时-分钟-秒格式的列,如何以秒为单位返回总时间? [关闭]
Posted
技术标签:
【中文标题】给定熊猫中只有小时-分钟-秒格式的列,如何以秒为单位返回总时间? [关闭]【英文标题】:How to return total time in seconds given a column with only hour-minute-second format in pandas? [closed] 【发布时间】:2019-08-15 23:41:29 【问题描述】:我有一个带有 00:00:00(小时、分钟、秒)格式的列的 pandas DataFrame。
'Time'
0 00:01:00
1 00:00:30
2 00:01:30
3 00:00:10
我需要创建一个列中包含总秒数的列。即
'Time' 'Time in secs'
0 00:01:00 60
1 00:00:30 30
2 00:01:30 90
3 00:00:10 10
我怎样才能做到这一点?
顺便说一句,当我这样做时:
df['Time'] = pd.to_datetime(df['Time], format = "%H:%M:%S")
时间列显示为 1900-01-01 00:00:00 格式。 :(
如何删除年月日?
【问题讨论】:
pd.to_datetime(df['Time'], format = "%H:%M:%S").dt.time
获取时间
酷,不错的信息
【参考方案1】:
您没有日期,因此使用Timedelta
最容易,而且您的格式完全符合要求。这些正是您想要的属性:total_seconds
pd.to_timedelta(df.Time).dt.total_seconds()
#0 60.0
#1 30.0
#2 90.0
#3 10.0
#Name: Time, dtype: float64
【讨论】:
【参考方案2】:将时间列转换为时间增量并除以秒
df['Time in secs'] = pd.to_timedelta(df['Time'])/pd.to_timedelta(1, unit='S')
结果
df['Time in secs']
0 60.0
1 30.0
2 90.0
3 10.0
Name: Time, dtype: float64
【讨论】:
以上是关于给定熊猫中只有小时-分钟-秒格式的列,如何以秒为单位返回总时间? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章