Есть ли разумный способ объединить два DataFrame на основе критериев подстроки?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли разумный способ объединить два DataFrame на основе критериев подстроки?

Сообщение Anonymous »

В настоящее время я работаю с некоторыми номерами телефонов DataFrames, и мне нужно объединить их по критериям подстроки, и это должно быть левое слияние (то есть иметь все комбинации в случае, если совпадений более 1). >
Например, эти 2 DataFrame:
(идентификаторы здесь для иллюстрации)
ТЕЛЕФОНЫ

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

| id |     phone    |
| -- | ------------ |
| 1  | +12399998888 |
| 2  | +12377776666 |
| 3  | +1233399998888 |
PHONES_NO_EXT

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

| id |  phone   |
| -- | -------- |
| 1  | 99998888 |
| 2  | 99998888 |
| 3  | 77776666 |
RESULT_NEEDED

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

| id |     phone    |  phone_no_ext |
| -- | ------------ | ------------- |
| 1  | +12399998888 |    99998888   |
| 1  | +12399998888 |    99998888   |
| 2  | +12377776666 |    77776666   |
| 3  | +1233399998888 |    99998888   |
| 3  | +1233399998888 |    99998888   |
Обратите внимание, что у вас всегда есть как минимум 1 совпадение из PHONES_NO_EXT, принадлежащее PHONES.
Посмотрите на идентификатор 3 PHONES, узнать это невозможно префикс, но это совпадение все равно необходимо.
Один из подходов заключался в выполнении всех комбинаций (создание строк len(PHONES) * len(PHONES_NO_EXT) в новом DataFrame), а затем создание df.apply для фильтрации на основе подстроки (вы можете себе представить, что это решение невозможно масштабировать).
Как выполнить это слияние наиболее эффективным способом?

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

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

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

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

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

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

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