根据表格给出以下pandas分组,如何在每个index
中获得Offline_RentetionAge
的前3 CPUCore
,并保留表的结构?
对于上述结果,结果应为
CPUCore Offline_RetetionAge index 0 i7 183 4184 1 7 1981 2 30 471 3 i5 .. ...
答案 0 :(得分:1)
如果index column
中的值已排序,您可以使用GroupBy.head
:
df = df.groupby(level=0).head(3)
样品:
df = pd.DataFrame({'CPUCore':['i7'] * 4 + ['i5'] * 4,
'Offline_RetetionAge':['100','1','12','120','15','10','20','3'],
'index':[11,16,5,4,30,18,2,1]})
.set_index(['CPUCore','Offline_RetetionAge'])
print (df)
index
CPUCore Offline_RetetionAge
i7 100 11
1 16
12 5
120 4
i5 15 30
10 18
20 2
3 1
df = df.groupby(level=0).head(3)
print (df)
index
CPUCore Offline_RetetionAge
i7 100 11
1 16
12 5
i5 15 30
10 18
20 2