pandas 数据框中的 Groupby() 和 mean() 返回多于两列

Groupby() and mean() in pandas dataframe with returning more than two columns

超级简单的一道题,至今找不到。

这是我的数据框

    id  Name    Lastname    Journal     Article   Score
0   1   John    Doo         Journal2    Article1    23
1   2   John    Doo         Journal1    Article2    12
2   3   Bill    Foo         Journal17   Article3    8

当我使用

df.groupby('id', as_index=False)['Score'].mean()

它给了我

    id  Score
0   1   17.5
1   2   8.0

预期产出

   id   Name Lastname Score
0   1   Joe  Doe      17.5
1   2   Bill Foo      8.0

如果 NameLastname 列中每个 id 的值相同,则将其添加到 groupby:

df.groupby(['id','Name','Lastname'], as_index=False)['Score'].mean()

如果可能,每个 id 的不同值是可能的,提取每个组的 first/last 个值:

df.groupby('id', as_index=False).agg({'Score':'mean', 'Name':'first', 'Lastname':'first'})

df.groupby('id', as_index=False).agg({'Score':'mean', 'Name':'last', 'Lastname':'last'})