Фильтровать фрейм данных A на основе столбцов из фрейма данных B

#python #pandas #dataframe

#python #панды #фрейм данных

Вопрос:

У меня есть два фрейма данных, где фрейм данных A содержит гораздо больше столбцов, чем фрейм данных B, что я хотел бы сделать, это отфильтровать фрейм данных A, используя фрейм данных B в качестве ссылки, и получить новый фрейм данных A с тем же количеством столбцов, что и фрейм данных A. Например:

 df_A = pd.DataFrame(np.random.randn(150, 17), columns=list('ABCDEFGHIJKLMONPQ'))
df_B = pd.DataFrame(np.random.randn(150, 8), columns=list('ABCDEFGH'))
 

Я хотел бы отфильтровать дополнительные столбцы df_A и иметь a df_A с теми же столбцами, которые df_B есть.

Чтобы df_A на выходе были столбцы ‘ABCDEFGH’

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

1. df_A.loc[:, df_B.columns] ? или на всякий случай df_A.loc[:, df_A.columns.intersection(df_B.columns)]

Ответ №1:

Используйте фильтр.

 df_A.filter(df_B.columns)
 

Или

 df_A[df_B.columns]