слияние и объединение фреймов данных wo pandas, не включая столбцы фрейма данных с правой стороны

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

У меня есть два фрейма данных, как показано ниже.

 ***df1 = pd.DataFrame({'a':[1,1,2,2,3,3], 'b':[1,2,1,2,1,2], 'c':[1,2,4,0,0,2]})***
 

df1

 a   b   c
 

0 1 1 1
1 1 2 2
2 2 1 4
3 2 2 0
4 3 1 0
5 3 2 2

 ***df2 = pd.DataFrame({'a':[1,1,2,2], 'b':[1,2,1,2], 'c':[1,5,6,2]})***
 

df2

 a   b   c
 

0 1 1 1
1 1 2 5
2 2 1 6
3 2 2 2

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

 ***merged_df = df1.merge(df2, how='inner', left_on=["a", "b"], right_on=["a","b"])***

a   b   c_x c_y
 

0 1 1 1 1
1 1 2 2 5
2 2 1 4 6
3 2 2 0 2

из приведенного выше кода без удаления c_x и c_y вручную, есть ли какой-либо способ не объединять правый фрейм данных (df2) в принципе, я хочу все столбцы из df1 и не хочу никаких столбцов из df2 после слияния. Заранее спасибо.

Ответ №1:

Идея заключается в том, чтобы фильтровать только столбцы для слияния здесь a,b . Если требуется объединение по обоим столбцам on , параметр следует опустить (тогда панды объединяются путем пересечения столбцов в обоих DataFrames ):

 merged_df = df1.merge(df2[["a", "b"]])
 

работает как:

 merged_df = df1.merge(df2[["a", "b"]], on=['a','b'])
 

Комментарии:

1. отлично, это сработало. merged_df = df1.merge(df2[[«a», «b»]], on=[‘a’, ‘b’])