Pandas: як використовувати групу за умовою where
Найпростіший спосіб використання group by із умовою Where у pandas — це використання функції query() :
df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index ()
У цьому конкретному прикладі обчислюється середнє значення балів , згрупованих за позиціями , де команда дорівнює «А» в деяких pandas DataFrame.
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: як використовувати групу за умовою Where у Pandas
Припустімо, що у нас є такий фрейм даних pandas, який містить інформацію про різних баскетболістів:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'F'], ' points ': [22, 14, 15, 10, 8, 29, 33, 18]}) #view DataFrame print (df) team position points 0 AG 22 1 AG 14 2 AF15 3 AF 10 4 AF 8 5 BG 29 6 BG 33 7 BF 18
Ми можемо використати такий код, щоб обчислити середнє значення балів , згруповане за позиціями , де команда дорівнює «A»:
#calculate mean value of points, grouped by position, where team == 'A' df. query (" team == 'A' "). groupby ([" position "])[" points "]. mean (). reset_index () position points 0 F 11.0 1G 18.0
З результату ми бачимо:
- Середнє значення очок для гравців на позиції «F» у команді А становить 11 .
- Середнє значення очок для гравців на позиції «G» команди А становить 18 .
Зауважте, що ми також можемо використовувати оператор & у функції query() , щоб знайти рядки, де виконуються кілька умов.
Наприклад, у наведеному нижче коді показано, як обчислити середнє значення балів , згруповане за позиціями , де команда дорівнює «A» , а позиція — «G»:
#calculate mean value of points by position where team is 'A' and position is 'G' df. query (" team=='A' & position=='G' "). groupby ([" position "])[" points "]. mean (). reset_index () position points 0G 18.0
З результату ми бачимо, що середнє значення очок для гравців на позиції “G” у команді A становить 18 .
Оскільки ми вказали дві умови у функції query() , використовувалися лише ті рядки, які відповідали обом умовам.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Як виконати суму GroupBy у Pandas
Як використовувати Groupby та Plot у Pandas
Як підрахувати унікальні значення за допомогою GroupBy в Pandas