Задать вопрос
@Dato38it

Как мне в Python добавить таблицу, учитывая формулу?

Мне нужно найти соседство из базовых станций первой таблицы.
У меня программа выдает 2 таблицы через Pandas:
Корректирую данные из файла
 - Добавляю словарь с названиями базовых станций и координатами.
    newBs longitude  latitude
0  IR021  105.99870  52.78068
1  IR048  102.14958  53.17582
2  IR066  105.46800  54.04308
 - Добавляю таблицу из словаря.
Корректирую данные из rdb
Считываю данные из файла:  IR.kml
Корректирую данные из rdb файлов:
 - Добавляю словарь с названиями соседних базовых станций и координатами, LAC И BSC.
       oldBs longitude         latitude     BSC   LAC
0     IR055   104.278286633  52.255474988944  396402  5244
1     IR107  104.2863944009  52.284744395507  396402  5244
2     IR100  104.2058703968  52.310800749578  396402  5307
3     IR103  104.3358510877  52.219410098781  396402  5319
4     IR100  104.2639053885  52.273995078092  396402  5244
...      ...            ...              ...     ...   ...
1394  IR294  103.8349640892  52.574271985462  401257  5272
1395  IR295  105.5618886914  54.095100603944  401257  5251
1396  IR299  103.7831487935  52.420066254791  401257  5259
1397  IR290  103.8418234894   52.69637656718  401257  5272
1398  IR291  103.8440774559  52.517154218339  401257  5272

Есть формула определения расстояния: sqrt((x1-x2) * (x1-x2) + (y1-y2) * (y1-y2)). x1, y1 координаты из первой таблицы, а x2, y2 координаты из второй таблицы.
Как мне в Python добавить таблицу, которая дублирует первую таблицу, добавляет данные из второй таблицы, учитывая формулу выше.
Примерно такую таблицу пытаюсь получить:
newbs longitude1 latitude1   oldbs      longitude2        latitude2     BSC   LAC
0  IR021  105.99870  52.78068   IR055   104.278286633  52.255474988944  396402  5244
1  IR048  102.14958  53.17582   IR103  104.3358510877  52.219410098781  396402  5319
2  IR066  105.46800  54.04308   IR299  103.7831487935  52.420066254791  401257  5259

У меня получилось это реализовать через словарь. но на данный момент теперь два словаря, которые никак между собой не связаны, у меня сейчас работает через таблицу.
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
Совершенно непонятно формулируешь вопрос.

1. Кого считать соседями? Если пункт А находится в радиусе или на расстоянии R от пункта B, то они соседи.

2. Земля не плоская, твоя формула евклидовой дистанции при чем здесь? для расчета дистанций есть другие специальные формулы.

3.
Как мне в Python добавить таблицу, которая дублирует первую таблицу, добавляет данные из второй таблицы, учитывая формулу выше.
Реляционные операции они происходят на основе ключа или ключей. На основании чего ты тут собрался собирать. Ты можешь найти потенциально соседей для любой взятой точки. Возникает вопрос а зачем тогда вообще две таблицы их можно просто слить в одну. Возможно связь есть, а ты о ней не рассказал.

4. По итогу из того что есть задача видится как нахождения соседей для каждой точки датасета. Я бы брут форсем, такое не решал, а использовал бы базы с approximate nearest neighbor. Построить индексы O(n log(n)), запросы O(log(n) ), ну и вся задача для каждой точки датасета O(n log(n)).

5. Используй подходящие базы ну или хотя бы geopandas. В этих случаях все инструменты уже есть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
02 янв. 2025, в 20:05
100000 руб./за проект
02 янв. 2025, в 19:28
1000 руб./за проект
02 янв. 2025, в 16:48
1000 руб./за проект