Pandas — изменение порядка нескольких заголовков в фрейме данных Panda

#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]) 🙂