请选择具有最佳值的行

2024-04-25 01:49:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个数据框

   col1 col2 col3
0     2    A 1
1     1    A 100
2     3    B 12
3     4    B 2

我想从有A的所有列中选择最高的col1值,然后从有B的所有列中选择一个,以此类推,即这是所需的输出

   col1 col2  col3
0     2    A   1
3     4    B   2

我知道我需要一些groupby('col2'),但我不知道之后该用什么。你知道吗


Tags: 数据col2col3col1groupby
2条回答

这就是你想要的吗?你知道吗

In [16]: df.groupby('col2').max().reset_index()
Out[16]:
  col2  col1
0    A     2
1    B     4

使用groupby('col2')然后使用idxmax来获取每个组中最大值的索引。最后,使用这些索引值对原始数据帧进行切片。你知道吗

df.loc[df.groupby('col2').col1.idxmax()]

enter image description here

注意,原始数据帧的索引值被保留。你知道吗

相关问题 更多 >