python時間格式轉換--timedelta轉換為時分秒 格式


方法一:

先用timedelta.total_seconds(x)將timedelta轉換為秒,再用strftime('%H:%M:%S',gmtime(x)))將秒轉換為時分秒格式

例:

from time import gmtime
from time import strftime
import pandas as pd
import datetime
from datetime import timedelta

df=pd.read_excel(r'E:\數據源.xlsx')
df=df[~df['審核時間'].isnull()]

df['審核時間']=pd.to_datetime(df['審核時間'])
df['采樣時間']=pd.to_datetime(df['采樣時間'])

df['時長']=df['審核時間']-df['采樣時間']

df['時長']=df['時長'].apply(lambda x:timedelta.total_seconds(x))
df['時長'].map(lambda x:strftime('%H:%M:%S',gmtime(x)))

Output:

 

以上方法中是先將timedelta轉換為秒,然后再利用map(lambda x: strftime('%H:%M:%S',gmtime(x)))將秒轉換為時分秒格式

timedelta轉換為秒然用到函數:timedelta.total_seconds()

timedelta.total_seconds():此方法的返回類型是一個數字,該數字是該時間段內覆蓋的總秒數;

from datetime import time, timedelta  
    
## total_seconds function
x = timedelta(minutes = 2*15)
total = x.total_seconds()
print("Total seconds in 30 minutes:", total)

Output:    
Total seconds in 30 minutes: 1800.0

 

方法二:自定義一個函數

def convert(x):
    hours = x.components.hours
    minutes = x.components.minutes
    seconds = x.components.seconds
    return f"{hours}:{minutes}:{seconds}"
df['時長']=df['時長'].apply(convert)
df['時長'].head()

Output:

方法二中,Series.dt.components:返回 Timedeltas 組件的 Dataframe

s = pd.Series(pd.to_timedelta(np.arange(5), unit='s'))
s
0   0 days 00:00:00
1   0 days 00:00:01
2   0 days 00:00:02
3   0 days 00:00:03
4   0 days 00:00:04
dtype: timedelta64[ns]
s.dt.components
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0     0      0        0        0             0             0            0
1     0      0        0        1             0             0            0
2     0      0        0        2             0             0            0
3     0      0        0        3             0             0            0
4     0      0        0        4             0             0            0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM