Как отсортировать Pandas DataFrame по индексу?


91

Когда есть DataFrame, подобный следующему:

import pandas as pd
df = pd.DataFrame([1, 1, 1, 1, 1], index=[100, 29, 234, 1, 150], columns=['A'])

Как я могу отсортировать этот фрейм данных по индексу с сохранением каждой комбинации индекса и значения столбца?

Ответы:


150

У Dataframes есть sort_indexметод, который по умолчанию возвращает копию. Пройти inplace=Trueработать на месте.

import pandas as pd
df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df.sort_index(inplace=True)
print(df.to_string())

Дает мне:

     A
1    4
29   2
100  1
150  5
234  3

13

Чуть компактнее:

df = pd.DataFrame([1, 2, 3, 4, 5], index=[100, 29, 234, 1, 150], columns=['A'])
df = df.sort_index()
print(df)

Заметка:


9
.sort()docstring говоритDEPRECATED: use DataFrame.sort_values()
endolith

1
@endolith Indeed .sort()с тех пор устарел. Замена будет такой, .sort_index()как использует Пол Х. в своем ответе, и в этом случае единственная разница между нашими ответами состоит в том, что я не использую inplace=True.
fantabolous
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.