我正在使用NBA Draft数据框,可以从here获得该数据框,并使用熊猫读取它。

它是这样的:

              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()


但是我认为这并没有叫我想要的。有人可以指出正确的方向吗?

先感谢您

最佳答案

您可以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

关于python - 在Python 3中对列进行分组并提取统计信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53309776/

10-12 22:50