Pandas中如何将时分、时分秒混合格式统一转为hh:mm:ss格式?
解决方案
方法1:字符串补全法(适合保留超24小时的时长)
因为数据里存在25:45这种超过24小时的计时,用日期解析会自动转成次日时间,这种情况下直接补全秒数更稳妥:
# 给仅含时分的时间补全秒数为00 df7['Chip Time'] = df7['Chip Time'].apply(lambda x: x + ':00' if x.count(':') == 1 else x)
执行后,列中所有值都会变成hh:mm:ss格式,比如25:45转为25:45:00,12:34:34保持不变。
方法2:利用Pandas日期解析(适合标准24小时内的时间)
如果你的时间都是24小时以内的合法时间,可以用pd.to_datetime自动解析混合格式,再格式化输出:
import pandas as pd # 自动解析混合时间格式,再转为hh:mm:ss字符串 df7['Chip Time'] = pd.to_datetime(df7['Chip Time']).dt.strftime('%H:%M:%S')
注意:这种方法会把25:45解析为次日的01:45:00,需要保留超24小时时长的话,不要用这个方法。
额外:统一格式后转分钟数
如果之后还要计算总分钟数,用Pandas矢量化操作比循环更高效:
# 拆分时分秒并计算总分钟数 df7['Time Mins'] = df7['Chip Time'].str.split(':').apply(lambda x: int(x[0])*60 + int(x[1]) + int(x[2])/60)
内容的提问来源于stack exchange,提问作者Josue V.
相关产品推荐
相关产品推荐

