Pandas: як перейменувати стовпці у функції groupby


Ви можете використовувати такий базовий синтаксис, щоб перейменувати стовпці у функції groupby() у pandas:

 df. groupby (' group_col '). agg (sum_col1=(' col1 ', ' sum '),
                            mean_col2=(' col2 ', ' mean '),
                            max_col3=(' col3 ', ' max '))

У цьому конкретному прикладі обчислюються три агреговані стовпці з назвами sum_col1 , Mean_col2 і max_col3 .

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: перейменування стовпців у функції Groupby в Pandas

Припустімо, що у нас є наступні pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [30, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 6, 6, 5, 8, 7, 7, 9],
                   ' rebounds ': [4, 13, 15, 10, 7, 7, 5, 11]})

#view DataFrame
print (df)

  team points assists rebounds
0 to 30 5 4
1 to 22 6 13
2 A 19 6 15
3 A 14 5 10
4 B 14 8 7
5 B 11 7 7
6 B 20 7 5
7 B 28 9 11

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

 #calculate several aggregated columns by group and rename aggregated columns
df. groupby (' team '). agg (sum_points=(' points ', ' sum '),
                       mean_assists=(' assists ', ' mean '),
                       max_rebounds=(' rebounds ', ' max '))

	sum_points mean_assists max_rebounds
team			
A 85 5.50 15
B 73 7.75 11

Зауважте, що три агреговані стовпці мають спеціальні імена, які ми надали у функції agg() .

Також зауважте, що за бажання ми могли б використовувати функції NumPy для обчислення суми, середнього та максимального значень у функції agg() .

 import numpy as np

#calculate several aggregated columns by group and rename aggregated columns
df. groupby (' team '). agg (sum_points=(' points ', np. sum ),
                       mean_assists=(' assists ', np. mean ),
                       max_rebounds=(' rebounds ', np. max ))

	sum_points mean_assists max_rebounds
team			
A 85 5.50 15
B 73 7.75 11

Ці результати відповідають результатам попереднього прикладу.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:

Як перерахувати всі назви стовпців у Pandas
Як сортувати стовпці за назвою в Pandas
Як видалити дублікати стовпців у Pandas

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

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