Сопоставьте строки в двух кадрах данных с использованием данных широты и долготы до 4 знаков после запятой

У меня есть два DataFrames, каждый из которых содержит информацию об учетной записи клиента (например, имя, адрес, продажи, широту и долготу). Оба кадра данных имеют широту и долготу учетной записи. Я хотел бы сопоставить учетные записи в двух кадрах данных на основе широты и долготы, сделав предположение, что если широта и долгота обе математические в 4 знаках после запятой, то учетные записи также должны совпадать. Результатом будет новая серия (например, «Соответствует») в одном из двух кадров данных, которая равна «1», если есть совпадение, или «0», если совпадения нет.

Как я могу сделать это с помощью Pandas?

Пожалуйста, предоставьте пример кадра данных

Tom McLean 22.03.2022 16:49
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Синтезируйте строковый столбец «широта, долгота», отформатированный до вашей любимой десятичной точности.

Тогда просто .merge( ... ) ваши кадры данных на этом.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html

Как объединить два столбца? Создайте третий столбец, преобразовав строку широты и долготы в строку и объединив ее в один столбец — может быть, это работает, но это немного неуклюже?

Steve Maughan 22.03.2022 16:56

Настройка проблемы неявно предполагает, что один или несколько фреймов данных имеют широту/длину с точностью до 5 цифр или более. Смысл синтеза нового поля не в том, чтобы объединить два столбца. Скорее, это позволяет снизить точность сравнения с помощью простого оператора равенства, не возясь с такими выражениями, как abs(lat1 - lat2) < thresh. У вас также есть np.format_float_positional(lat1, precision=4) в вашем распоряжении, если хотите. xkcd.com/2170

J_H 22.03.2022 20:50

Спасибо @J_H — вы правы — вы можете объединить два ключа, передав список параметру «on». Это решило проблему.

Steve Maughan 25.03.2022 20:57

Другие вопросы по теме