Группировка столбцов и извлечение статистики в Python 3 - PullRequest
0 голосов
/ 15 ноября 2018

Я использую фрейм данных NBA Draft, который можно получить здесь , и читаю его с помощью панд.

Вот как это выглядит:

              Player  Position   ID         Draft Year Projected SPM Superstar  Starter Role Player Bust
0   Karl-Anthony Towns  C   karl-anthony-towns  2015    1.030606    0.134767    0.427183    0.163083    0.274967
1   Justise Winslow     SF  justise-winslow     2015    0.875329    0.083529    0.510905    0.176767    0.228800
2   Stanley Johnson     SF  stanley-johnson     2015    0.679493    0.067800    0.423733    0.278500    0.229967
3   Jahlil Okafor       C   jahlil-okafor       2015    0.521661    0.058717    0.409900    0.235533    0.295850
4   D`Angelo Russell    PG  d-angelo-russell    2015    0.511967    0.152033    0.342283    0.096583    0.409100

Теперь я попытался сгруппировать по столбцу position и получить количество игроков в каждом draft year. В то же время я хотел отобразить медиану столбца superstar.

Это мой код:

data['Median'] = data['Superstar'].median()
data[data['Draft Year']>=2015].groupby('Position').count()

Но я думаю, что это не вопит, что я хочу. Кто-то может, пожалуйста, указать мне в правильном направлении?

Заранее спасибо

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете groupby и использовать agg

df.groupby(['Position', 'Draft Year']).agg({'Superstar':'median', 'Player':'count'})

                           Superstar    Player
Position    Draft Year      
C            2015           0.096742       2
PG           2015           0.152033       1
SF           2015           0.075664       2

или вы можете создать функцию

def my_agg(x):
    names = {
        'Superstar Median': x['Superstar'].median(),
        'Player Count': x['Player'].count(),
    }

    return pd.Series(names, index=['Superstar Median', 'Player Count'])

df.groupby(['Position', 'Draft Year']).apply(my_agg)

                        Superstar Median    Player Count
Position    Draft Year      
C             2015          0.096742           2.0
PG            2015          0.152033           1.0
SF            2015          0.075664           2.0
...