Pythoh 计算2个时间戳/开始和结束时间段的差值建议
问题背景:数据集存在2个时间变量:订单开始时间,订单结束时间(如下图)
需求:计算2个时间差值。
思路:先确认变量的数据类型,然后调试下是否有超过天的数据,没有的话就分别分割成时,分,秒。然后转化为分钟单位,
最后差值=结束时间-开始时间
对应操作如下:
1.修改时间数据类型:
df1['start_time'] = pd.to_datetime(df1.start_time)
df1['end_time'] = pd.to_datetime(df1.end_time)
2.分割时间:
提取小时有2种方式:
#方式1:df1['订单开始-小时'] = [datetime.strftime(x, '%H') for x in df1['start_time']]
#方式2:df1['订单开始_小时']=df1['start_time'].dt.hour
df1['订单开始_日']=df1['start_time'].dt.day
df1['订单结束_日']=df1['end_time'].dt.day
df1['订单开始_小时']=df1['start_time'].dt.hour
df1['订单结束_小时']=df1['end_time'].dt.hour
df1['订单开始_分钟']=df1['start_time'].dt.minute
df1['订单结束_分钟']=df1['end_time'].dt.minute
df1['订单开始_秒']=df1['start_time'].dt.second
df1['订单结束_秒']=df1['end_time'].dt.second
3.计算差值
df1['使用分钟'] = (df1.订单结束_日 - df1.订单开始_日)*24*60 + (df1.订单结束_小时 - df1.订单开始_小时)*60 + (df1.订单结束_分钟 - df1.订单开始_分钟)+(df1.订单结束_秒 - df1.订单开始_秒)/60
df1.head(5)