让我们考虑一下我有这个数据集:
name comp item type
A c1 item21 t1
A c1 item231 t1
A c1 item3 t1
B c3 item23 t1
B c3 item1 t1
B c3 p3251 t1
C c4 item1 t1
C c4 p32sd t1
C c4 item512 t1
D c5 item242 t2
D c5 item1 t2
F c6 item4 t2
F c6 item24 t2
H c7 item4125 t2
H c7 item3 t2
H c7 item14 t2
K c8 item1 t2
K c8 p3223 t2
我想选择每种类型的前n个[names,comp]的所有项目:
例如,每种类型的前2个name-comp的所有项目的预期df为:
name comp item type
A c1 item21 t1
A c1 item231 t1
A c1 item3 t1
B c3 item23 t1
B c3 item1 t1
B c3 p3251 t1
D c5 item242 t2
D c5 item1 t2
F c6 item4 t2
F c6 item24 t2
有人知道如何执行此操作吗?
尝试这个:
cols = ['type', 'name', 'comp']
# The first 2 name-comp of each type
tmp = df[cols].drop_duplicates().groupby('type').head(2)
# All rows that match the criteria
result = tmp.merge(df, left_on=cols, right_on=cols)
如果您不希望使用中间数据帧:
df[cols].drop_duplicates().groupby('type').head(2).merge(df, left_on=cols, right_on=cols)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句