Есть ли разумный способ объединить два 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

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