Как мы должны объединять несколько наборов данных без дубликатов в строках или столбцах, когда у нас нет общих имен столбцов в пандах - PullRequest
0 голосов
/ 13 октября 2018

Я новичок в анализе данных и хочу объединить 3 таблицы в одну без повторяющихся строк или столбцов.У меня есть столбец во всех 3 таблицах с одинаковыми значениями, но имена столбцов отличаются в 3 таблицах.У меня есть 3 таблицы 'listings', 'users', 'info'.Все они имеют одинаковые номера идентификаторов, но имеют разные имена столбцов, такие как 'user_id' в таблице списков, 'id' в таблице пользователей и 'id_number' в информационной таблице.

Я пробовал следующее, но все равно получаюлибо повторяющиеся значения, либо значения NaN.

pd.merge(listings,users,left_on='user_id',right_on='id').merge(info,left_on='user_id',right_on='id_number')

для этого случая я вижу повторяющиеся значения, а общее количество строк в результате очень меньше.

Я попытался выполнить concat, как показано ниже:

pd.concat(['listings','users','info'],axis=1)

но я получил следующую ошибку:

TypeError: не удалось объединить объект типа "";действительны только объекты pd.Series, pd.DataFrame и pd.Panel (не рекомендуется)

1 Ответ

0 голосов
/ 13 октября 2018

Когда вы используете pd.merge без указания аргумента how , вы выполняете объединение inner для двух таблиц. И поскольку объединения inner являются своего рода математическим intersection, вы должны ожидать меньше или равно количеству строк в меньшей таблице.

Когда вы делаете

pd.merge(listings,users,left_on='user_id',right_on='id').merge(info,left_on='user_id',right_on='id_number')

, вы обязательно должны иметь duplicate columns,Два столбца id и user_id появятся в результатах первого слияния, а когда вы выполните второе слияние, появятся два столбца user_id и id_number.Это все дубликаты одного столбца.

Если бы все три таблицы имели одинаковые ID, вы не увидели бы дублирующиеся столбцы.Я думаю, что вы должны просто удалить дубликаты столбцов.Я полагаю, что вы могли бы с легкостью выяснить происхождение дубликатов столбцов, если бы сохранили результаты первого слияния в одном кадре данных, а затем выполнили окончательное слияние с таблицей info.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...