2015-12-15 5 views
1

У меня есть следующий dataframe:Сортировка панды dataframe

Join_Count 1 
LSOA11CD  
E01006512 15 
E01006513 35 
E01006514 11 
E01006515 11 
E01006518 11 
... 

Но когда я пытаюсь сортировать его:

BusStopList.sort("LSOA11CD",ascending=1) 

Я получаю следующее:

Key Error: 'LSOA11CD' 

Как я выполните сортировку по столбцу LSOA или столбцу, заполненному номерами, которые не имеют заголовка?


Ниже приводится информация, получаемая с помощью Python об этом dataframe:

<class 'pandas.core.frame.DataFrame'> 
Index: 286 entries, E01006512 to E01033768 
Data columns (total 1 columns): 
1 286 non-null int64 
dtypes: int64(1) 
memory usage: 4.5+ KB 
+0

С позиции метки, это выглядит как LSOA11CD может быть индекс, а не столбец, который, как я помню, это то, что 'DataFrame.sort 'метод ищет. Что возвращает 'print (BusStopList.index)? Если это действительно индекс, вместо этого вы захотите использовать 'sort_index'. – benjwadams

+0

Возможный дубликат [Python, pandas: как отсортировать данные по индексу] (http://stackoverflow.com/questions/22211737/python-pandas-how-to-sort-dataframe-by-index) – Tgsmith61591

ответ

2

«LSOA11CD» это имя индекса, 1 является имя столбца. Таким образом, вы должны использовать индекс сортировки (а не sort_values):

BusStopList.sort_index(level="LSOA11CD", ascending=True) 
+0

Отлично, спасибо за ваша помощь – Cobain

+0

Я пробовал то, что вы предложили, но получите следующую ошибку: 10 sort_index() получил неожиданный ключевой аргумент 'level' – Cobain

+0

@Cobain, пожалуйста, обновите свои панды. Примечание. Этот аргумент необязателен в этом случае: 'BusStopList.sort_index (по возрастанию = True)' должен просто работать. –

Смежные вопросы