昨天写了下计算5分钟粒度车公里数的代码。
对于发车、到达时间都在5分钟粒度内,直接取两站间距;
对于发车时间小于5分钟间隔左届,以及到达时刻大于右届的,按比例计算。
首先,写一个获得时间粒度左右届的函数,对想要计算的时间进行切片。
代码中,周期和频率可以根据需要填写。
用&对条件进行合并,此处不能用and;
对3种不同情况需要分别提取符合条件的数据,进行计算。
import pandas as pd
import numpy as np
def get_different_time(data):
time = pd.date_range(start="20211201060000", periods=205, freq="5T") # 得到时间序列
for time_sec in range(len(time) - 1):
low = time[time_sec] # 开始时间
high = time[time_sec + 1] # 终止时间
low_text = str(low)[-8:-3] # 对时间切片
high_text = str(high)[-8:-3]
data1 = data[(data["Departure_TIME"] >= low) & (data["Arrive_TIME"] <= high)] # 读取指定时间间隔内的数据
data2 = data[(data["Departure_TIME"] >= low) & (data["Departure_TIME"] < high) & (data[&#