it-roy-ru.com

Панды: объединить (объединить) два фрейма данных в нескольких столбцах

Я пытаюсь объединить два фрейма данных pandas, используя два столбца:

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

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

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]'

Есть идеи, каким должен быть правильный способ сделать это? Спасибо!

96
Edamame

Попробуй это

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: метка или список, или массива, как имена полей для объединения в левом DataFrame. Может быть вектором или списком векторов длины DataFrame для использования определенного вектора в качестве ключа соединения вместо столбцов

right_on: метка или список, или массивы, подобные именам полей, для объединения в правый DataFrame или вектор/список векторов для документов left_on

174
Shijo