我有一個像這樣的熊貓數據框。如何將熊貓數據框與列表子集
order_id latitude longitude
0 519 19.119677 72.905081
1 520 19.138250 72.913190
2 521 19.138245 72.913183
3 523 19.117662 72.905484
4 524 19.137793 72.913088
5 525 19.119372 72.893768
6 526 19.116275 72.892951
7 527 19.133430 72.913268
8 528 19.136800 72.917185
9 529 19.118284 72.901114
10 530 19.127193 72.914269
11 531 19.114269 72.904039
12 532 19.136292 72.913941
13 533 19.119075 72.895115
14 534 19.119677 72.905081
15 535 19.119677 72.905081
另外一個清單
DB
Out[658]:
[['523'],
['526', '533'],
['527', '528', '532', '535'],
['530', '519'],
['529', '531', '525', '534'],
['520', '521', '524']]
現在我想子集上的列表元素數據幀。列表中有6個元素,每個元素都有一個order_id
的子列表。所以,對於每個子元素,我都需要相應的經度和緯度。然後,我要計算每個order_id location
之間的半正矢距離:
DB[2]
['527', '528', '532', '535']
然後我想在子集爲緯度和經度對主數據幀。所以它應該返回給我一個像這樣的數組:
array([[ 19.11824057, 72.8939447 ],
[ 19.1355074 , 72.9147978 ],
[ 19.11917348, 72.90518167],
[ 19.127193 , 72.914269 ]])
(只是一個例子不是一個正確的拉長對)。
我做如下:
db_lat = []
db_long = []
for i in range(len(DB)):
l = len(DB[i])
for j in range(l):
db_lat.append(tsp_data_unique.latitude[tsp_data_unique['order_id'] ==
''.join(DB[i][j])])
db_long.append(tsp_data_unique.longitude[tsp_data_unique['order_id']
== ''.join(DB[i][j])])
但它給我的緯度和長期存在的所有在DB的列表。在這裏,我無法區分哪些經緯度屬於哪個數據庫元素。所以,對於每個數據庫元素(在我的情況下是6)我需要6個lat和long數組。請幫忙。