web-dev-qa-db-fra.com

pandas: fusionner (joindre) deux cadres de données sur plusieurs colonnes

J'essaie de joindre deux pandas cadres de données à l'aide de deux colonnes:

new_df = pd.merge(A_df, B_df,  how='left', left_on='[A_c1,c2]', right_on = '[B_c1,c2]')

mais j'ai eu l'erreur suivante:

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4164)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4028)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13166)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13120)()

KeyError: '[B_1, c2]'

Une idée de ce qui devrait être la bonne façon de faire cela? Merci!

113
Edamame

Essaye ça

new_df = pd.merge(A_df, B_df,  how='left', left_on=['A_c1','c2'], right_on = ['B_c1','c2'])

http://pandas.pydata.org/pandas-docs/version/0.19.1/generated/pandas.DataFrame.merge.html

left_on: label ou liste, ou noms de champs de type tableau à rejoindre dans le DataFrame de gauche. Peut être un vecteur ou une liste de vecteurs de la longueur du DataFrame pour utiliser un vecteur particulier comme clé de jointure au lieu de colonnes

right_on: étiquette ou liste, ou noms de champs semblables à des tableaux à joindre dans le droit DataFrame ou vecteur/liste de vecteurs par documentation left_on

205
Shijo