1. 程式人生 > 程式設計 >python將時分秒轉換成秒的例項

python將時分秒轉換成秒的例項

處理資料的時候遇到一個問題,從資料庫裡匯出的資料是時分秒的格式: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將時分秒轉換成秒的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。