處理數據的時候遇到一個問題,從數據庫里導出的數據是時分秒的格式: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 pddata = pd.read_excel(r"C:/Users/chih-cheng/Desktop/data.xlsx")#導入數據data.dtypes#查看數據類型
運行結果:
結果發現“工作總時長”字段并不是字符串類型,所以我們使用第二個定義的函數即可解決問題,代碼如下:
data['工作總時長'] = data['工作總時長'].apply(time2sec)#直接將定義好的 time2sec()函數作用于元素即可print(data)
結果如下:
大功告成。
以上這篇python將時分秒轉換成秒的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網之家。
|
新聞熱點
疑難解答