Як відсортувати Pandas DataFrame за індексом?


91

Коли є DataFrame, наприклад, наступне:

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

Як я можу відсортувати цей кадр даних за індексом з незмінною кожною комбінацією значення індексу та стовпця?

Відповіді:


149

Фрейми даних мають 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()
ендоліт

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