繁体   English   中英

从 dataframe 获取最大值以及其他信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM