一个超级简单的问题,到目前为止我还找不到。
这是我的数据帧
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
如果Name
和Lastname
列中每个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'})