0
votes

Erreur causée par la fusion de deux tables en python

Je veux fusionner deux tables en une j'ai tous les clients avec des métriques importantes et dans la seconde client_id avec les e-mails des clients. J'essayais de faire avec ceci:

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

J'ai eu une erreur avec client_id et je ne sais pas ce qui pourrait causer cela.


3 commentaires

Juste une supposition sauvage parce que vous n'avez pas réussi à afficher les dataframes et le message d'erreur full incluant le stacktrace, mais l'un des dataframes n'a probablement pas de colonne client_id .


les deux ont client_id


dataframe2.columns Index (['client_id', 'owner_email', 'trk_hs_owner'], dtype = 'object') mns allclients.columns Index (['date', 'client_id', 'impressions', 'visites', 'conversions ',' clique '...]


3 Réponses :


2
votes

Vous fusionnez tous les clients qui ont certainement une colonne client_id avec dataframe2 [['owner_email', 'trk_hs_owner']] qui ne peut pas: vous l'avez divisé en seulement 2 colonnes 'owner_email' , 'trk_hs_owner' .

Vous devriez utiliser:

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

p>


0 commentaires

0
votes

cette instruction sélectionne seulement deux colonnes de dataframe2:

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

Cela supprime la colonne client_id. Par conséquent, vous ne pouvez pas rejoindre client_id après.

Essayez:

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


0 commentaires

1
votes

dataframe2 ne contient pas de colonne client_id.Si la colonne client_id est présente dans dataframe2, vous devez également la sélectionner et si elle est présente avec un nom différent, vous devez spécifier le nom de la colonne gauche et droite. Deux solutions possibles sont:

Si le nom de la colonne est le même dans les deux tableaux:

pd.merge(allclients, dataframe2[['diff_col_name','owner_email','trk_hs_owner']],left_on='client_id',right_on='diff_col_name')

Si le nom de la colonne est différent dans les deux tableaux:

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


0 commentaires