Как изменить порядок индексированных строк на основе списка в кадре данных Pandas

У меня есть кадр данных, который выглядит так:

company Amazon Apple Yahoo name A 0 130 0 C 173 0 0 Z 0 0 150 

Он был создан с использованием этого кода:

 import pandas as pd df = pd.DataFrame({'name' : ['A', 'Z','C'], 'company' : ['Apple', 'Yahoo','Amazon'], 'height' : [130, 150,173]}) df = df.pivot(index="name", columns="company", values="height").fillna(0) 

Я хочу, чтобы сортировать строку (с name индекса) в соответствии с предопределенным списком ["Z", "C", "A"] . В результате:

 company Amazon Apple Yahoo name Z 0 0 150 C 173 0 0 A 0 130 0 

Как я могу это достичь?

One Solution collect form web for “Как изменить порядок индексированных строк на основе списка в кадре данных Pandas”

Вы можете установить индекс по предопределенному порядку, используя reindex like

 In [14]: df.reindex(["Z", "C", "A"]) Out[14]: company Amazon Apple Yahoo Z 0 0 150 C 173 0 0 A 0 130 0 

Однако, если это алфавитный порядок, вы можете использовать sort_index(ascending=False)

 In [12]: df.sort_index(ascending=False) Out[12]: company Amazon Apple Yahoo name Z 0 0 150 C 173 0 0 A 0 130 0 

Как указано ниже, вам нужно назначить его некоторой переменной

 In [13]: df = df.sort_index(ascending=False) 
  • Заполните массив 1D numpy массивами с индексами
  • Вычисление сгруппированных данных на одном и том же участке с использованием Pandas
  • Панды определяют начало, конец и дно рецессии на основе ВВП
  • Переместить заданную строку до конца DataFrame
  • склеарная стратифицированная выборка на основе столбца
  • Pandas: .groupby (). Size () и проценты
  • Неоднозначность в представлении «ось» в Pandas Dataframe / Numpy Array
  • Загрузка данных из Yahoo! Финансы с пандами
  • Python - лучший язык программирования в мире.