Для создания таблицы, которая будет объединять данные из двух источник таблиц и вычислять расстояние между точками, можно использовать библиотеку `pandas` в Python.
Вот пошаговая инструкция, как это сделать:
1. Установите библиотеку `pandas` (если она еще не установлена):
```
pip install pandas
```
2. Используйте код ниже, чтобы создать нужную таблицу:
```python
import pandas as pd
import numpy as np
# Пример данных первой таблицы
data1 = {
'newbs': ['A', 'B', 'C'],
'longitude1': [10.0, 20.0, 30.0],
'latitude1': [15.0, 25.0, 35.0]
}
df1 = pd.DataFrame(data1)
# Пример данных второй таблицы
data2 = {
'oldbs': ['X', 'Y', 'Z'],
'longitude2': [12.0, 22.0, 32.0],
'latitude2': [18.0, 28.0, 38.0]
}
df2 = pd.DataFrame(data2)
# Функция для расчета расстояния
def calculate_distance(x1, y1, x2, y2):
return np.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
# Создаем пустой список для хранения результатов
results = []
# Перебираем строки обеих таблиц
for _, row1 in df1.iterrows():
for _, row2 in df2.iterrows():
distance = calculate_distance(row1['longitude1'], row1['latitude1'], row2['longitude2'], row2['latitude2'])
results.append({
'newbs': row1['newbs'],
'longitude1': row1['longitude1'],
'latitude1': row1['latitude1'],
'oldbs': row2['oldbs'],
'longitude2': row2['longitude2'],
'latitude2': row2['latitude2'],
'distance': distance
})
# Создаем новый DataFrame из результатов
result_df = pd.DataFrame(results)
# Смотрим получившуюся таблицу
print(result_df)
```
### Пояснения к коду:
1. Импортируем необходимые библиотеки `pandas` и `numpy`.
2. Создаем два примера DataFrame, представляющие первые и вторые таблицы с координатами.
3. Определяем функцию `calculate_distance`, которая вычисляет расстояние по формуле.
4. Создаем список `results`, в который будем добавлять результаты.
5. Перебираем строки из обеих таблиц и вычисляем расстояние, добавляя результаты в список.
6. Создаем новый DataFrame `result_df` из списка `results`.
7. Выводим получившуюся таблицу.
### Вывод
Ваш итоговый результат будет содержать все комбинации `newbs` и `oldbs` с соответствующими координатами и рассчитанным расстоянием. Если вам нужно отфильтровать результаты или применить другие условия, вы можете изменить логику в переборе.