Переиндексировать одновременно и индекс, и столбцы - PullRequest
1 голос
/ 09 апреля 2020

Мне часто нужно переиндексировать фрейм данных как в индексе, так и в столбцах другого фрейма данных, т.е.

df_out = df2.reindex(df1.index).reindex(df1.columns,axis='columns')

Есть ли более эффективный способ сделать это? Как и в более быстром исполнении. Или менее многословно.

1 Ответ

0 голосов
/ 09 апреля 2020

reindex установка индекса и столбцов в одном вызове

reindex может принимать оба параметра index и columns в одном вызове, чтобы сделать именно это:

df2.reindex(index=df1.index, columns=df1.columns)

reindex_like для переиндексации точно так же, как в другом кадре данных (обе оси):

df2.reindex_like(df1)

Давайте проверим на том же примере из документов:

print(df)
           http_status  response_time
Firefox            200           0.04
Chrome             200           0.02
Safari             404           0.07
IE10               404           0.08
Konqueror          301           1.00

new_index = ['Safari', 'Iceweasel', 'Comodo Dragon', 'IE10','Chrome']
new_columns = ['http_status', 'some_other_col']
df.reindex(index=new_index, columns=new_columns)

                  http_status  some_other_col
Safari               404.0             NaN
Iceweasel              NaN             NaN
Comodo Dragon          NaN             NaN
IE10                 404.0             NaN
Chrome               200.0             NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...