在 pandas 数据帧中的 groupby 之后查找最大行

Finding max row after groupby in pandas dataframe

我有一个daframe如下:

Month   Col1    Col2    Val
A       p       a1      31
A       q       a1      78
A       r       b2      13
B       x       a1      54
B       y       b2      56
B       z       b2      65

我想获得以下信息:

Month   a1  b2
A       q   r
B       x   z

基本上对于每对 MonthCol2,我想在 Col1 中找到具有最大值的值。

我不知道该如何处理。

您的问题是:

  1. 在一组中查找最大为 Val 的行,即 sortdrop_duplicates,以及
  2. 转换数据,即pivot:
(df.sort_values('Val') 
   .drop_duplicates(['Month','Col2'], keep='last')
   .pivot(index='Month', columns='Col2', values='Col1')
)

输出:

Col2  a1 b2
Month      
A      q  r
B      x  z