Pandas: как отсортировать сводную таблицу по значениям в столбце


Вы можете использовать следующий базовый синтаксис для сортировки сводной таблицы pandas на основе значений столбца:

 my_pivot_table. sort_values (by=[' some_column '], ascending= False )

В этом конкретном примере значения сводной таблицы под названием my_pivot_table сортируются на основе значений some_column в порядке убывания.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: Сортировка сводной таблицы Pandas по значениям в столбце

Предположим, у нас есть следующий DataFrame pandas, содержащий информацию о различных баскетболистах:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B',
                            'B', 'B', 'C', 'C', 'C', 'C'],
                   ' points ': [4, 4, 2, 8, 9, 5, 5, 7, 8, 8, 4, 3],
                   ' assists ': [2, 2, 5, 5, 4, 7, 5, 3, 9, 8, 4, 4]})

#view DataFrame
print (df)

   team points assists
0 to 4 2
1 to 4 2
2 to 2 5
3 to 8 5
4 B 9 4
5 B 5 7
6 B 5 5
7 B 7 3
8 C 8 9
9 C 8 8
10 C 4 4
11 C 3 4

Мы можем использовать следующий код для создания сводной таблицы в pandas, которая отображает сумму значений в столбцах очков и помощи для каждой команды:

 #create pivot table
df_pivot = df. pivot_table (index=[' team '], values=[' points ', ' assists '], aggfunc=' sum ')

#view pivot table
print (df_pivot)

      assist points
team                 
At 14 18
B 19 26
C 25 23

По умолчанию pandas сортирует строки сводной таблицы в алфавитном порядке на основе значения индексного столбца, который является столбцом команды .

Однако мы можем использовать функцию sort_values() для сортировки строк сводной таблицы на основе значений точечного столбца:

 #sort pivot table by value in 'points' column in descending order
sorted_df_pivot = df_pivot. sort_values (by=[' points '], ascending= False )

#view sorted pivot table
print (sorted_df_pivot)

      assist points
team                 
B 19 26
C 25 23
At 14 18

Обратите внимание, что строки сводной таблицы теперь сортируются на основе значений в столбце «Точки» .

Обратите внимание, что если вы опустите аргумент возрастающий=False , строки будут отсортированы по значениям в точечном столбце в порядке возрастания:

 #sort pivot table by value in 'points' column in ascending order
sorted_df_pivot = df_pivot. sort_values (by=[' points '])

#view sorted pivot table
print (sorted_df_pivot)

      assist points
team                 
At 14 18
C 25 23
B 19 26

Обратите внимание, что строки сводной таблицы теперь сортируются по значениям столбцов с точками в порядке возрастания (от меньшего к большему).

Примечание № 1. Вы также можете выполнить сортировку по нескольким столбцам в сводной таблице, передав несколько значений в аргумент by в функции sort_values() .

Примечание №2 . Полную документацию по функции pandas Pivot_table() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Pandas: как изменить форму DataFrame с длинного на широкий
Pandas: как изменить форму DataFrame с широкой на длинную
Pandas: как группировать и агрегировать по нескольким столбцам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *