使用Python处理数据,例如在highD中提取数据时,首先要搞清楚自己要什么,然后再思考可以添加什么条件来实现它。
比如我想提取车辆变道时刻后车thw,大体思想就是:
- 遍历每个track.csv文件
- 在每个文件中,按id分组(后续说到为什么要这么做)
- 因为要提取车辆变道时刻的什么什么,所以先定义车辆变道时刻,就是车道id那一列相邻两行相减,不等于0,则取第二行,这一行对应的第一列frame就是换道时刻
- 提取这一行的第一列frame和后车id那一列
- 有了这两个数据就可以定位到后车在这一刻所对应的thw
- 为什么要分组(在第三步中,你要相邻两行相减,不分组的话,1号车的最后一行和2号车的第一行也会相减,提取出来的2号车的第一行不是换道时刻,所以要在每个车辆id组中相减)
代码如下
import pandas as pd
import os
# 指定CSV文件所在的文件夹路径
csv_folder_path = 'D:/00000/highD/data/test/'
# 获取文件夹中所有CSV文件的路径
csv_file_paths = [os.path.join(csv_folder_path, file) for file in os.listdir(csv_folder_path) if file.endswith('.csv')]
# 初始化结果列表
output_data = []
# 遍历每个CSV文件
for csv_file_path in csv_file_paths:
# 读取CSV文件为DataFrame
data = pd.read_csv(csv_fil