我想指定我需要获取最大值的整行,而不是来自多行的不同最大值,在我的示例中,这应该基于“数字”列。比如这种方式:
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] 删除。
我来说两句