从两个字符串列的熊猫数据框看起来像:
d = {'SCHOOL' : ['Yale', 'Yale', 'LBS', 'Harvard','UCLA', 'Harvard', 'HEC'],
'NAME' : ['John', 'Marc', 'Alex', 'Will', 'Will','Miller', 'Tom']}
df = pd.DataFrame(d)
注意 NAME 到 SCHOOL 之间的关系是 n 到 1。如果一个人去了两所不同的学校,我想得到最后一所学校(参见“Will”案例)。
到目前为止,我得到了:
df = df.groupby('NAME')['SCHOOL'].unique().reset_index()
返回:
NAME SCHOOL
0 Alex [LBS]
1 John [Yale]
2 Marc [Yale]
3 Miller [Harvard]
4 Tom [HEC]
5 Will [Harvard, UCLA]
问题:
这两个问题都是基于@IanS 评论解决的。
使用last()
代替unique()
:
df = df.groupby('NAME')['SCHOOL'].last().reset_index()
返回:
NAME SCHOOL
0 Alex LBS
1 John Yale
2 Marc Yale
3 Miller Harvard
4 Tom HEC
5 Will UCLA
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句