Pandas: 匹配值得到完整路线
Pandas: Matching values to get a complete route
我正在尝试将当前数据帧中的值与另一个数据帧进行匹配,以帮助确定该值是否是路径的一部分。例如:
DF1
Route Latitude Longitude
0 0C,5 1.23 1.23
1 2A,5,1 2.23 2.23
2 5,0C 3.23 3.23
DF2
In_Route Rides
0 5 30
1 0C 50
2 1 20
我想使用 DF1 和 DF2 匹配它们以在 DF2 中创建一个新列,最终得到如下所示的数据框:
DF2
In_Route Rides Complete_Route_Index
0 5 30 0,1,2
1 0C 50 0,2
2 1 20 1
使用 list comprehension
过滤 dict
:
值的成员资格
d = DF1.Route.to_dict()
f = lambda x: ','.join([str(k) for k, v in d.items() if x in v])
DF2['new'] = DF2['In_Route'].apply(f)
print (DF2)
In_Route Rides new
0 5 30 0,1,2
1 0C 50 0,2
2 1 20 1
我正在尝试将当前数据帧中的值与另一个数据帧进行匹配,以帮助确定该值是否是路径的一部分。例如:
DF1
Route Latitude Longitude
0 0C,5 1.23 1.23
1 2A,5,1 2.23 2.23
2 5,0C 3.23 3.23
DF2
In_Route Rides
0 5 30
1 0C 50
2 1 20
我想使用 DF1 和 DF2 匹配它们以在 DF2 中创建一个新列,最终得到如下所示的数据框:
DF2
In_Route Rides Complete_Route_Index
0 5 30 0,1,2
1 0C 50 0,2
2 1 20 1
使用 list comprehension
过滤 dict
:
d = DF1.Route.to_dict()
f = lambda x: ','.join([str(k) for k, v in d.items() if x in v])
DF2['new'] = DF2['In_Route'].apply(f)
print (DF2)
In_Route Rides new
0 5 30 0,1,2
1 0C 50 0,2
2 1 20 1