Сортировать pandas строк данных в соответствии со столбцом значения строки - PullRequest
1 голос
/ 03 февраля 2020

У меня есть следующий фрейм данных:

        month       price
0       April  102.478015
1      August   94.868053
2    December   97.278205
3    February  100.114510
4     January   99.419109
5        July   93.402928
6        June   96.114224
7       March  101.297762
8         May  102.905340
9    November   97.952169
10    October   95.606478
11  September   94.226803

Я бы хотел, чтобы месяцы были в последовательном порядке (январь в первом ряду до декабря в 12-м ряду). Как я могу это сделать?

При необходимости вы можете скопировать этот фрейм данных и затем выполнить

pd.read_clipboard(sep='\s\s+')

, чтобы фрейм данных был на вашем ноутбуке jupyter

1 Ответ

2 голосов
/ 03 февраля 2020

Преобразование значений в заказанные categorical с, поэтому можно использовать DataFrame.sort_values:

cats = ['January','February','March','April','May','June',
        'July','August','September','October','November','December']
df['month'] = pd.CategoricalIndex(df['month'], ordered=True, categories=cats)
#alternative
#df['month'] = pd.Categorical(df['month'], ordered=True, categories=cats)
df = df.sort_values('month')
print (df)
        month       price
4     January   99.419109
3    February  100.114510
7       March  101.297762
0       April  102.478015
8         May  102.905340
6        June   96.114224
5        July   93.402928
1      August   94.868053
11  September   94.226803
10    October   95.606478
9    November   97.952169
2    December   97.278205
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...