Ошибка, вызванная объединением двух таблиц в python - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу объединить две таблицы в одну, у меня есть все клиенты с важными метриками, а во второй client_id с электронными письмами клиентов. Я пытался сделать с этим:

import pandas as pd
result = pd.merge(allclients, dataframe2[['owner_email','trk_hs_owner']], on='client_id')

Я получил ошибку с client_id, и я не знаю, что может вызвать это.

Ответы [ 3 ]

2 голосов
/ 16 апреля 2020

Вы объединяете allclients, у которого определенно есть столбец client_id с dataframe2[['owner_email','trk_hs_owner']], который не может: вы разрезали его только на 2 столбца 'owner_email', 'trk_hs_owner'.

Вы должны использовать:

result = pd.merge(allclients, dataframe2[['client_id','owner_email','trk_hs_owner']],
                  on='client_id')
0 голосов
/ 16 апреля 2020

dataframe2 не содержит столбца client_id. Если в dataframe2 есть столбец client_id, вам также нужно выбрать его, и если он присутствует с другим именем, вам нужно указать имя левого и правого столбца. Два возможных решения:

Если имя столбца в обеих таблицах одинаковое:

pd.merge(allclients, dataframe2[['client_id','owner_email','trk_hs_owner']], on='client_id')

Если имя столбца в обеих таблицах отличается:

pd.merge(allclients, dataframe2[['diff_col_name','owner_email','trk_hs_owner']],left_on='client_id',right_on='diff_col_name')
0 голосов
/ 16 апреля 2020

этот оператор выбирает только два столбца dataframe2:

dataframe2[['owner_email','trk_hs_owner']]

Это удаляет столбец client_id. Следовательно, вы не можете присоединиться к client_id после.

Попробуйте:

pd.merge(allclients, dataframe2[['owner_email','trk_hs_owner', 'client_id']], on='client_id')
...