如何根据pandas.groupby().max()中一列的最大值获取整行?

萨米尔·阿曼

我想指定我需要获取最大值的整行,而不是来自多行的不同最大值,在我的示例中,这应该基于“数字”列。比如这种方式:

import pandas as pd

data = {
    'Number':[12,55,3,2,88,17],
    'People':['Zack','Zack','Merry','Merry','Cross','Cross'],
    'Random':[353,0.5454,0.5454336,32,-7,4]
}

df = pd.DataFrame (data, columns = ['Number','People','Random'])

print(df,'\n')

max_values = df.groupby('People').max()

print(max_values)

结果如下:

   Number People      Random
0      12   Zack  353.000000
1      55   Zack    0.545400
2       3  Merry    0.545434
3       2  Merry   32.000000
4      88  Cross   -7.000000
5      17  Cross    4.000000 

        Number  Random
People                
Cross       88     4.0
Merry        3    32.0
Zack        55   353.0

这是预期的结果max_values

        Number  Random
People                
Cross       88    -7.000000
Merry        3    0.545434
Zack        55   353.0
大卫

您可以执行以下操作:

import pandas as pd

data = {
    'Number':[12,55,3,2,88,17],
    'People':['Zack','Zack','Merry','Merry','Cross','Cross'],
    'Random':[353,0.5454,0.5454336,32,-7,4]
}

df = pd.DataFrame (data, columns = ['Number','People','Random'])

print(df,'\n')

res = df[df.groupby(['People'])['Number'].transform(max) == df['Number']].set_index('People')
print(res)

这给出了以下输出:

        Number    Random
People                  
Zack        55  0.545400
Merry        3  0.545434
Cross       88 -7.000000

您的代码中的问题max()是按列应用,因此通过使用切片可以避免此问题。

注意预期的输出是问题中的错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:Pandas:如何根据Groupby在另一列中查找最大值

pandas groupby agg 从一列获取最大值并从另一列带来值

在DataFrame.groupby的情况下,如何基于另一列的最大值获取列的值

pandas groupby,您将获得一列的最大值和另一列的最小值

根据与Pandas groupby对象不同的列的最大值获取列的值

Pandas:Groupby,连接一列并确定具有最大值的行

Pandas groupby在另一列中标识出最大值的元素

pandas df获取与groupby的最大值关联的列的值

如何使用groupby从某个列中获取第n个最大值并对同一行的另一列进行计算

Groupby,将一个列的值与另一列的最大值在Pandas中进行比较

Pandas groupby agg 根据一列的值

根据另一列的最大值获取值

Spark SQL:当另一列是 groupBy().agg() 中的最大值时获取列的值

使用 groupby() 时从同一列中获取均值、最小值、最大值

在Pandas数据框中使用groupby时,如何根据上一行中的值增加一列?

Pandas groupby:根据另一列中的值更改一列中的值

DAX。根据另一列的最大值获取一列的值

在pandas中插入行,其中一列在groupby中丢失某些值

根据另一列分组的另一列的最大值获取值

如何使用pandas groupby根据不同的列获取唯一计数

如何从值与另一列匹配的一列中获取最大值?

如何为另一列的每个值获取一列的最大值?

如何根据另一列查找最大值?

Python Pandas groupby和分类列的最大值

Pandas 数据透视表或 groupby 列的绝对最大值

SAS-如何按数据步骤中一列的最大值进行过滤

如何使用groupby获取与列最大值对应的所有行

如何对一列进行分组并获得另一个列的最大值并使用python返回整行

如何使用列名查找groupby pandas的最大值