Python将时分秒格式转换为秒数的两种方法

Jasper
Jasper
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍在Python中将数据库导出的hh:mm:ss格式数据转换为秒数的两种方法。针对字符串类型,通过split分割并计算总秒;针对时间类型,利用datetime模块提取时分秒进行转换。结合Pandas示例,展示如何根据字段实际类型选择合适函数,实现高效数据清洗。

引言与问题背景

在数据处理过程中,常遇到从数据库导出的数据格式为时分秒(hh:mm:ss)。为了便于后续计算,需要将其转换为秒数。

原始数据可能呈现两种类型:字符串类型或时间类型。由于两者的处理方式不同,需分别讨论。

字符串类型转换方法

第一种情况是将字符串类型的时分秒转换为秒。

可以通过冒号(':')将字符串分割为时、分、秒三部分,进而计算总秒数。具体实现如下:


def str2sec(x):
  '''
  字符串时分秒转换成秒
  '''
  h, m, s = x.strip().split(':') #.split()函数将其通过':'分隔开,.strip()函数用来除去空格
  return int(h)*3600 + int(m)*60 + int(s) #int()函数转换成整数运算

时间类型转换方法

第二种情况是将时间类型的时分秒转换为秒。

若数据本身为时间类型,可直接利用Python内置的datetime模块解决。具体实现如下:


def time2sec(y):
  '''
  时间类型时分秒转换成秒
  '''
  h = y.hour #直接用datetime.time模块内置的方法,得到时、分、秒
  m = y.minute
  s = y.second
  return int(h)*3600 + int(m)*60 + int(s) #int()函数转换成整数运算

Pandas数据处理示例

首先导入所需数据:


import pandas as pd
data = pd.read_excel(r"C:\Users\chih-cheng\Desktop\data.xlsx")
#导入数据
data.dtypes
#查看数据类型

运行结果如下:

结果显示“工作总时长”字段并非字符串类型,因此应使用第二种定义的函数进行处理。代码如下:


data['工作总时长'] = data['工作总时长'].apply(time2sec)
#直接将定义好的 time2sec()函数作用于元素即可
print(data)

最终结果如下:

至此,转换完成。

以上为Python将时分秒转换为秒数的完整示例,供参考。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表