«Достаточно близкое» сопоставление строк из двух кадров данных Pandas, сравнивающих несколько столбцовPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Достаточно близкое» сопоставление строк из двух кадров данных Pandas, сравнивающих несколько столбцов

Сообщение Anonymous »

У меня есть два фрейма данных с двумя общими столбцами. Я хочу пометить записи в первом кадре данных, которые имеют совпадение двух столбцов во втором, где второе совпадение является «нечетким». Ни один из столбцов не является уникальным ключом; значения могут повторяться в обоих из них. Представьте, например, что мои соответствующие столбцы — это столбец города и столбец даты.
Входной кадр данных 1 ():



город
дата




Нью-Йорк
1 января 2024 г.


Нью-Йорк
05.01.2024


Чикаго
02.01.2024


Чикаго
5 января 2024 г.


Хьюстон
1/3 /2024



Входной кадр данных 2 ():



город
дата




Нью-Йорк
2 января 2024 г.


Чикаго
05.01.2024



Мой желаемый результат — пометить как True каждую запись в df1, имеющую запись в df2, которая точно соответствует городу И соответствует внутри одного день даты, а все остальные записи помечены как False.
Выходной кадр данных 1:



город
дата
в паре




Новый Йорк
1 января 2024 г.
Верно


Нью-Йорк
5 января 2024 г.
Неверно


Чикаго
2 января 2024 г.
Неверно


Чикаго
05.01.2024
Верно

Хьюстон
3 января 2024 г.
Ложь



Если бы я искал точные совпадения в обоих столбцах, Проблема была бы очень простой: я бы заархивировал два столбца, которые будут использоваться для сопоставления, и применил бы тест isin внутри методаwhere:

Код: Выделить всё

df1['zipcol'] = list(zip(df1.city, df1.date))
df2['zipcol'] = list(zip(df2.city, df2.date))
df1['paired'] = np.where(df1['zipcol'].isin(df2['zipcol']), True, False)
#some overhead to drop the zipped columns
Каков наиболее эффективный способ выполнить этот тип сравнения, за исключением одного (или нескольких) критериев, которые не являются точными, но определяются с точки зрения значений из 2-го кадра данных, в диапазоне значений, центрированных по значениям, начиная с 1-го?
Заключительное примечание: меня не беспокоит возможность дублирования совпадений. Если совпадения один-ко-многим все же встречаются, их можно будет обработать на этапе постобработки позже.

Подробнее здесь: https://stackoverflow.com/questions/788 ... multiple-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»