一.按照路段进行分类
首先要对切分后的NGSIM数据集按照路段类型的不同进行分类,数据集中包含了四种不同的路段,“us-101”、“i-80”、“lankershim”和“peachtree”,其中前两个属于高速路段,后两个属于城市路段,大家可以根据自己的研究需要来选择路段进行研究。
1.获取csv文件名
首先,通过查找目标路径下所有csv文件,并将文件名存储在列表中,以便于接下来的使用吗,代码如下所示:
def Csv_List(self,path_exist):
"""
获取目标路径下的csv文件
:param path_exist:
:return:
"""
csv_list = os.listdir(path_exist)
return csv_list
2.创建存储分类后文件的文件夹
在新的路径下创建文件夹,以便于存储分类后的文件,代码如下所示:
def Create_Folder(self,path):
isExists = os.path.exists(path) # 判断路径是否存在
try:
if not isExists:
os.makedirs(path)
else:
pass
except FileExistsError:
print("目录已存在")
3.分类筛选
首先,通过循环的方式,访问原存储路径下的csv文件路径,并读取csv文件;其次通过pandas模块中的条件筛选,将不同路段下的数据集筛选出来,并存储到对应的csv文件下,最后将csv文件存储到新建的目标文件夹下即可。代码如下所示:
road_type_df = df[df["Location"] == folder]
road_location_list = list(loc for loc in road_type_df["Location"] )
if road_location_list != []: # 列表不为空
road_type_df.to_csv(csv_path_new,index=False)
print(f"保存{folder}_{count}文件成功")
else:
print(f"{csv}文件中没有{folder}路段")
continue
4.按路段类型分类完成后的图示
- 按路段类型创建的文件夹:
- 每个文件夹下按路段分类的csv文件
以“us-101”为例,对切分后的NGSIM数据集进行路段筛分,共筛分出9个,每个文件对应着切分的NGSIM数据集(注意:并不是每一个切分后的数据集中具有us-101)
二.总结
详细的代码,请查看《NGSIM数据集处理》。NGSIM数据集下载请查看NGSIM数据集大家有需要的可以下载浏览查看。接下来是对按车辆ID进行筛选,敬请关注!