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

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

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