当前位置 主页 > 服务器问题 > Linux/apache问题 >

    python将时分秒转换成秒的实例

    栏目:Linux/apache问题 时间:2019-12-07 21:54

    处理数据的时候遇到一个问题,从数据库里导出的数据是时分秒的格式:hh:mm:ss ,现在我需要把它转换成秒,方便计算。

    原数据可能分两种情况,字段有可能是文本字符串类型的,也有可能是时间类型,他们的处理方法不一样,所以我们分开讨论。

    1、字符串类型转换成秒

    可以将其用 ‘:' 分隔开,分别得出时、分、秒,即可计算出秒数。所以我们定义如下函数:

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

    2、时间类型转换成秒

    本身如果是时间类型的格式,我们可以很方便的使用 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()函数转换成整数运算

    首先我们导入数据:

    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将时分秒转换成秒的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。