求教一个dataframe 分组问题

clipboard.png
这样的一个表,想用key1分组,取data2大的那个行,做一个表怎么做?
试过df.groupby('key1',as_index=False).max()取的是所有列的最大,这样不行,请教怎么做?
这是原数据:
df = pd.DataFrame({'key1':['a','a','b','b','a'],'key2':['one','two','one','two','one'],'data1':np.random.randn(5),'data2':np.random.randn(5)})
df

阅读 2.5k
2 个回答
def f(df, col=1):
    return df[df['data2'] == max(df['data2'])]

df1 = df.groupby(['key1']).apply(f)
新手上路,请多包涵
l = df.groupby('key1')['data2'].max().tolist()
df = df.query('data2 in @l')

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题