Pandas: як сортувати зведену таблицю за значеннями в стовпці
Ви можете використовувати такий базовий синтаксис, щоб сортувати зведену таблицю pandas на основі значень стовпця:
my_pivot_table. sort_values (by=[' some_column '], ascending= False )
У цьому конкретному прикладі сортуються значення зведеної таблиці під назвою my_pivot_table на основі значень some_column у порядку спадання.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: сортування зведеної таблиці Pandas за значеннями в стовпці
Припустімо, що у нас є такий фрейм даних 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
Зауважте, що рядки зведеної таблиці тепер відсортовано на основі значень у стовпці «Точки» .
Зауважте, що якщо ви опустите аргумент ascending=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: як групувати та агрегувати в кількох стовпцях