熊猫数据帧中的Groupby()和mean(),返回两列以上



一个超级简单的问题,到目前为止我还找不到。

这是我的数据帧

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的不同值可能会提取每个组的第一个/最后一个值:

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'})

最新更新