让我们说我的DataFrame看起来像这样:
ggplot() +
geom_point(data = mtcars, aes(mpg, disp, colour = cyl)) +
geom_point(data = filter(mtcars, cyl == 6), aes(qsec, drat))
我想基于顶层实体输出,同时请记住银行不同,因此DataFrame会变为:
Bank Entity Amount
JPM NY 5000
JPM NY 300
BOA LA 10000
BOA China 3000
MS Japan 21000
我如何创造这样的东西?我知道如何Bank Entity Amount
JPM NY 5000
BOA LA 10000
MS Japan 21000
以及sort_values
,但我确实做错了什么。
有什么想法吗?我确定它非常简单。
答案 0 :(得分:2)
使用DataFrameGroupBy.idxmax
获取最大值的索引,然后按loc
选择:
df = df.loc[df.groupby('Bank')['Amount'].idxmax()]
print (df)
Bank Entity Amount
2 BOA LA 10000
0 JPM NY 5000
4 MS Japan 21000
或先sort_values
然后再使用GroupBy.last
:
df = df.sort_values('Amount').groupby('Bank', as_index=False).last()
print (df)
Bank Entity Amount
0 BOA LA 10000
1 JPM NY 5000
2 MS Japan 21000