如何使用Pandas计算不同时区下两个日期对应的行程时长
跨时区行程时长计算实现方案
实现逻辑很简单,只需要把原始的文本时间分别绑定对应的时区后再做差,最后转换为分钟单位即可,具体代码如下:
首先导入依赖(如果未导入的话):
import pandas as pd
你已经完成了数据读取:
trips = pd.read_csv("trips.csv", sep=',')
接下来做时间转换和时长计算:
# 逐行给出发时间绑定对应时区 trips['depart_dt'] = trips.apply( lambda row: pd.to_datetime(row['Depart Time']).tz_localize(row['Depart Timezone']), axis=1 ) # 逐行给抵达时间绑定对应时区 trips['arrive_dt'] = trips.apply( lambda row: pd.to_datetime(row['Arrive Time']).tz_localize(row['Arrive Timezone']), axis=1 ) # 计算时长,单位为分钟 trips['duration'] = (trips['arrive_dt'] - trips['depart_dt']).dt.total_seconds() / 60 # 可选:删除中间生成的临时列 trips.drop(['depart_dt', 'arrive_dt'], axis=1, inplace=True)
如果你需要取整数分钟,可以在计算duration的末尾加.astype(int)转换为整数类型。
注意:如果你的原始时间字符串本身已经自带时区标识,将上述代码中的tz_localize替换为tz_convert即可正常使用。
内容的提问来源于stack exchange,提问作者Joris Kinable
相关产品推荐
相关产品推荐

