У меня есть фрейм данных, из которого мне нужно извлечь максимальное значение. Вот пример DF: ПАРАМЕТР ОБЪЕКТА ЗНАЧЕНИЕ А Param1 1 B Param2 3 C Param1 5 D Param1 2 E Param3 4 Получить максимальное значение: maxval = data ['...

0
Josef 23 Мар 2021 в 10:58

1 ответ

Лучший ответ

Вы можете использовать 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

ВЫХОД: Маскировка:

>>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
1
ThePyGuy 23 Мар 2021 в 08:26