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