相关疑难解决方法(0)

Python:使用groupby获取具有最大值的行

我希望我能为我的问题找到帮助.我正在寻找以下问题的解决方案:

我有一个dataFrame,如:

   Sp   Mt Value   count
0  MM1  S1   a      **3**
1  MM1  S1   n      2
2  MM1  S3   cb     5
3  MM2  S3   mk      **8**
4  MM2  S4   bg     **10**
5  MM2  S4   dgd      1
6  MM4  S2  rd     2
7  MM4  S2   cb      2
8  MM4  S2   uyi      **7**
Run Code Online (Sandbox Code Playgroud)

我的目标是获取组之间计数最大的结果行,例如:

0  MM1  S1   a      **3**
1 3  MM2  S3   mk      **8**
4  MM2  S4   bg     **10** 
8  MM4  S2   uyi      **7**
Run Code Online (Sandbox Code Playgroud)

有人知道我怎么能在熊猫或python中做到这一点?

UPDATE

我没有提供更多关于我的问题的细节.对于我的问题,我想按['Sp','Mt'分组.让我们举个第二个例子:

   Sp   Mt   Value  count …
Run Code Online (Sandbox Code Playgroud)

python max pandas pandas-groupby

194
推荐指数
11
解决办法
21万
查看次数

将min()与groupby一起使用时,保留其他列

我正在使用groupbypandas数据帧删除所有没有特定列的最小行.像这样的东西:

df1 = df.groupby("item", as_index=False)["diff"].min()
Run Code Online (Sandbox Code Playgroud)

但是,如果我有超过这两列,则其他列将被删除.我可以使用groupby保留这些列,还是我必须找到一种不同的方法来删除行?

我的数据如下:

    item    diff   otherstuff
   0   1       2            1
   1   1       1            2
   2   1       3            7
   3   2      -1            0
   4   2       1            3
   5   2       4            9
   6   2      -6            2
   7   3       0            0
   8   3       2            9
Run Code Online (Sandbox Code Playgroud)

并应该最终像:

    item   diff  otherstuff
   0   1      1           2
   1   2     -6           2
   2   3      0           0
Run Code Online (Sandbox Code Playgroud)

但我得到的是:

    item   diff
   0   1      1           
   1   2     -6           
   2   3      0                 
Run Code Online (Sandbox Code Playgroud)

我一直在查看文档,找不到任何东西.我试过了:

df1 = df.groupby(["item", …
Run Code Online (Sandbox Code Playgroud)

python aggregate pandas pandas-groupby

53
推荐指数
2
解决办法
4万
查看次数

标签 统计

pandas ×2

pandas-groupby ×2

python ×2

aggregate ×1

max ×1