#pandas #dataframe #slice #multi-index
#pandas #фрейм данных #срез #многоиндексный
Вопрос:
У меня есть фрейм данных pandas с индексом столбца = 0 и двумя строками заголовка, которые выглядят следующим образом
1 2 3 4
Grid Year Lat Lon
_________________________
1 2002 51.52 -0.12
2 2003 51.52 -0.12
Я хотел бы изменить порядок двух столбцов заголовка на
Grid Year Lat Lon
1 2 3 4
__________________________
1 2002 51.52 -0.12
2 2003 51.52 -0.12
У кого-нибудь есть советы по решениям? Я пытался найти хорошее решение в Интернете, но ни один из них не дал мне никаких подсказок о том, как добиться успеха.
Ответ №1:
предполагая, что это ваш фрейм данных,
print(df)
1 2 3 4 <-- multi index
Grid Year Lat Lon <-- multi index
1 1 2002 51.52 -0.12
2 2 2003 51.52 -0.12
мы можем поменять местами уровни, используя удобный .swaplevel
метод.
подробнее читайте здесь
df.columns = df.columns.swaplevel(0)
#or
#df.columns = df.swaplevel(0,axis=1)
Grid Year Lat Lon
1 2 3 4
1 1 2002 51.52 -0.12
2 2 2003 51.52 -0.12
Комментарии:
1. Да, спасибо, это сработало отлично. Мой фрейм данных, как я уже говорил выше, состоит из чтения его в python с использованием read_csv (index_col = 0), поэтому у меня нет дополнительного столбца индекса, который есть в вашем решении. Но, тем не менее, с этим тоже все отлично сработало!
2. @gusbacos ах, попробуй
pd.read_csv(file,header=[0,1])
🙂