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: як групувати та агрегувати в кількох стовпцях

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *