我有一个像下面这样的表结构,用于完成针对name的任务,我希望每个名字的End_Time与Start_time之间存在差异。任何人都可以建议时间用python代码做到这一点。
start_time End_Time Name
2018-08-05T00:15:00+05:30 2018-08-05T00:17:00+05:30 UM6217
2018-08-05T00:15:00+05:30 2018-08-05T00:19:00+05:30 UM28402
2018-08-05T00:15:00+05:30 2018-08-05T00:18:00+05:30 UM27746
2018-08-05T00:15:00+05:30 2018-08-05T00:16:00+05:30 UM34802
时差。我正在使用pandas数据框来处理此数据
答案 0 :(得分:1)
您需要将时间转换为pandas.datetime
个对象,然后简单地将两者都减去。
df[['start_time', 'End_Time']] = df[['start_time', 'End_Time']].apply(lambda x: pd.to_datetime(x.str.split('+').str[0]))
df['diff'] = (df.End_Time - df.start_time).dt.total_seconds().div(60).astype(int) #minutes
输出:
start_time End_Time Name diff
0 2018-08-05 00:15:00 2018-08-05 00:17:00 UM6217 2
1 2018-08-05 00:15:00 2018-08-05 00:19:00 UM28402 4
2 2018-08-05 00:15:00 2018-08-05 00:18:00 UM27746 3
3 2018-08-05 00:15:00 2018-08-05 00:16:00 UM34802 1
答案 1 :(得分:0)
另一种解决方案也可以是这种方式。
df['start_time'] = pd.to_datetime(df['start_time'])
df['End_time'] = pd.to_datetime(df['End_time'])
df['DifferenceInMinutes'] = (df['End_time'].sub(df['start_time'], axis = 0)) / np.timedelta64(1, 'm')