我正在尝试获得类似于星火GroupBy和Collect_List或潘达斯中的Collect_Set的类似功能。
import pandas as pd
(pd.DataFrame
(
{
'professorid' : [1,2,3,4,5,1,2],
'studentid': ['a','b','c', 'd','e','b','b']
}
)
.groupby
(
'professorid'
)
.agg
(
num_students = ('studentid' , 'count'),
studentids = ('studentid' , lambda x: x.unique().tolist())
)
)这是一个错误:
KeyError:“(‘学生’,'')不在索引中”
我正在寻找的结果如下所示。

我怎么才能得到结果。
发布于 2020-03-17 14:27:24
你不需要lambda,你可以使用unique
import pandas as pd
(pd.DataFrame
(
{
'professorid' : [1,2,3,4,5,1,2],
'studentid': ['a','b','c', 'd','e','b','b']
}
)
.groupby
(
'professorid'
)
.agg
(
num_students = ('studentid' , 'count'),
studentids = ('studentid' , 'unique')
)
)
num_students studentids
professorid
1 2 [a, b]
2 2 [b]
3 1 [c]
4 1 [d]
5 1 [e]https://stackoverflow.com/questions/60723991
复制相似问题