标签:00 转换 timedelta df seconds 格式 total minutes
方法一: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
标签:00,转换,timedelta,df,seconds,格式,total,minutes 来源: https://www.cnblogs.com/Jasmine6-Lee/p/16137711.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。