pandas — сохраняйте в моем df только те имена столбцов, которые являются общими для df.index и df.columns

#python #pandas

#python #pandas

Вопрос:

У меня есть df, где имена индексов и столбцов представляют собой 6-значные почтовые индексы, 125 почтовых индексов являются общими как для df.index, так и для df.columns, в моем df теперь мне нужны только эти значения 125×125. Я смог удалить ненужные почтовые индексы из индекса, используя следующий фрагмент кода

 df = df[df.index.isin(df.columns)]
  

но для столбцов, когда я использую тот же код

 df = df[df.columns.isin(df.index)]
  

его ошибка при выбрасывании

 ValueError: Length mismatch: Expected axis has 813 elements, new values have 125 elements
  

Можете ли вы, ребята, помочь мне с этим??

Ответ №1:

Для фильтрации по столбцам используйте DataFrame.loc with : для получения всех строк и маски для имен столбцов фильтра:

 df = df.loc[:, df.columns.isin(df.index)]