[英]Get max value from dataframe with other information
我有 dataframe ,我需要从中提取最大值。 以下是 DF 的示例:
Object | 范围 | 价值 |
---|---|---|
一个 | 参数1 | 1 |
乙 | 参数2 | 3 |
C | 参数1 | 5 |
D | 参数1 | 2 |
乙 | 参数 3 | 4 |
获取最大值:
maxval = data['VALUE'][data['PARAMETER'] == 'Param1'].max()
print(maxval) # 5
这工作正常,但我也想得到 Object 提取最大值的名称,所以 output 应该是这样的:
Object 名称:C,最大值 = 5
怎么做?
您可以使用idxmax()
它将为您提供最大值的索引。
index = data['VALUE'][data['PARAMETER'] == 'Param1'].idxmax()
现在您可以使用此索引来获取任何列或整行。
data.loc[index, 'Object']
样品运行:
>>import pandas as pd
>>df = pd.DataFrame({'Object': ['A', 'B','C','D', 'E'], 'PARAMETER': ['Param1', 'Param2', 'Param3', 'Param2', 'Param1'], 'VALUE':[1, 2, 3, 4, 5]})
>>df
Object PARAMETER VALUE
0 A Param1 1
1 B Param2 2
2 C Param3 3
3 D Param2 4
4 E Param1 5
OUTPUT:掩蔽:
>>df[df['PARAMETER'] == 'Param1']
Object PARAMETER VALUE
0 A Param1 1
4 E Param1 5
idxmax()
:
>>df[df['PARAMETER'] == 'Param1']['VALUE'].idxmax()
4
从掩蔽中,您可以注意到,最大索引为 4,这就是idxmax()
产生的。 现在您可以使用此索引访问任何列,如下所示:
>>index = df['VALUE'][df['PARAMETER'] == 'Param1'].idxmax()
>>df.loc[index, 'Object']
'E'
或整行:
>>df.loc[index]
Object E
PARAMETER Param1
VALUE 5
Name: 4, dtype: object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.