需要提取熊猫数据框的前n个元素的属性
输入数据如下
model.summary()
...
我需要排在前两名,
KEY variable value
0 1 A 0.476970
101 1 B 0.513333
202 1 C 0.376970
203 2 B 0.5667
101 2 A 0.513333
202 2 C 0.376970
我尝试的代码如下
KEY variable value
1 A 0.476970
1 B 0.513333
2 B 0.5667
2 A 0.513333
...
这给了我
test=pred_melt.groupby(['KEY'])['value'].nlargest(2)
想法是与具有索引(101,0等)的原图联接以添加变量列,但无法从上面的索引中获得所需的输出。 不是按列分组是键而不是变量。
答案 0 :(得分:0)
感谢Supratim,是的,但我添加了我必须锻炼的其他细节。如果需要,请发表评论。
test=pred_melt.groupby(['KEY'])['value'].nlargest(2)
test.index
返回MultiIndex 按照 https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html 结构是
MultiIndex(levels=[...], [...]],
codes=[[...], [..]],
names=[...])
我对
感兴趣test.index.levels[1]
这是我的第二栏
KEY
1 101 0.513333
0 0.476970
...
Name: value, Length: 198, dtype: float64
为0,101等,可用于从pred_melt获取记录
KEY variable value
0 1 A 0.476970
101 1 B 0.513333
202 1 C 0.376970
203 2 B 0.5667
101 2 A 0.513333
202 2 C 0.376970
为
pred_melt.iloc[test.index.levels[1]]