python - 将 HH:MM:SS AM/PM OBJECT 列转换为 SECONDS
问题描述
我有一个对象类型列,时间格式为 HH:MM:SS AM/PM。我需要的输出是一个将时间对象列转换为秒的列。
例如:
import pandas as pd
df={'time_col':['10:10:10 PM','02:00:05 AM'],'time_seconds':[72610,7205]}
df2=pd.DataFrame(df)
我尝试了不同的方法。但是,它将 1900-01-01 添加到某些行而不是某些行。
解决方案
将时间字符串转换为datetime
(考虑 AM/PM),获取时间组件的字符串(忽略日期),然后将其转换为timedelta
. 现在您可以提取秒数。
df = pd.DataFrame({'time_col':['10:10:10 PM','02:00:05 AM']})
# make sure we have time objects
df['time_col'] = pd.to_datetime(df['time_col']).dt.time
# time column to string, then to timedelta and extract seconds from that
df['time_seconds'] = pd.to_timedelta(df['time_col'].astype(str)).dt.total_seconds()
df['time_seconds']
0 79810.0
1 7205.0
Name: time_seconds, dtype: float64
推荐阅读
- java - Appium_Android_Java_无法拍照
- jenkins - 是否可以从“构建其他项目”下的常规 Jenkins 作业触发多分支管道作业?
- django - 为什么 React fetch 检索空白对象?
- angularjs - 带有 HTML 元素的三元语句
- python - 如何将下载的 truetypefont 添加到 matplotlib.font_manager 的 ttflist?
- asp.net-core - 使用自定义函数 .NET Core 2 覆盖 OnTokenValidated JwtBearerEvents
- android - 将 Anko Layout 存储在变量中而不进行渲染
- android - 如何设置gps位置
- javascript - jQuery将字段数据添加到数组中以显示在textarea下
- r - 从连接列创建虚拟矩阵