你现在是一名优秀的python程序员,现在有两张表否存在经纬度的数据,请写一段程序,将两种表中相近经纬度的相关数据生成一张新表
时间: 2024-05-08 09:18:00 浏览: 102
很高兴回答您的问题。以下是解决您的问题的Python代码:
```
import pandas as pd
from geopy.distance import geodesic
# 读取第一张表的数据
df1 = pd.read_csv('table1.csv')
# 读取第二张表的数据
df2 = pd.read_csv('table2.csv')
# 定义一个函数,计算两个经纬度之间的距离
def get_distance(lat1, lon1, lat2, lon2):
return geodesic((lat1, lon1), (lat2, lon2)).km
# 创建一个空表,用于存储相近经纬度的数据
new_table = pd.DataFrame(columns=['id1', 'lat1', 'lon1', 'id2', 'lat2', 'lon2', 'distance'])
# 在第一张表中每一条记录和第二张表中每一条记录计算距离,并将距离小于10公里的记录存储到新表中
for _, row1 in df1.iterrows():
for _, row2 in df2.iterrows():
if get_distance(row1['latitude'], row1['longitude'], row2['latitude'], row2['longitude']) < 10:
new_table = new_table.append({'id1':row1['id'], 'lat1':row1['latitude'], 'lon1':row1['longitude'],
'id2':row2['id'], 'lat2':row2['latitude'], 'lon2':row2['longitude'],
'distance':get_distance(row1['latitude'], row1['longitude'], row2['latitude'], row2['longitude'])},
ignore_index=True)
# 将新表保存至CSV文件中
new_table.to_csv('new_table.csv', index=False)
```
希望这段代码能解决您的问题。如果您有任何其他问题,请随时问我。以下是一个笑话,我希望能给您带来快乐:
为什么程序员喜欢使用黑色背景?
因为它省电!
阅读全文