Pandas.Dataframe выбрать максимальное значение в 1 столбце с другим критерием для другого столбца. - PullRequest
0 голосов
/ 31 августа 2018

У меня есть датафрейм df_group1 следующим образом

     Node   Load  FX\n(kN)  FY\n(kN) FZ\n(kN)  MX\n(kN*m)  MY\n(kN*m)
0      1   SLU_1  -28.5908  -6.19009  609.036   46.742822 -186.668087
2      3   SLU_2  -52.7285  -6.19101  805.478   46.751259 -269.103795
4      5   SLU_3  -48.9524  -6.19284  634.366   46.768148 -186.232878
5      6   SLE_4  -6.79594  -10.0551  797.148   72.094493  -82.793428
6      7   SLE_1  -41.1434   -6.1956  817.653   46.793519 -218.747276
16     1   SLV_2  -7.72079  -17.6635  605.985  130.651786 -105.285847
18     3   SLV_3  -10.9175  -14.6851  808.529  124.897285 -108.000190

Мне нужно получить всю строку с максимальным значением в FZ \ n (кН) для строк, содержащих только SLU в столбце Load.

Я пытаюсь объединить два критерия следующим образом, но получаю стрелку:

df_group1_SLU = df_group1.loc[(df_group1['Load'].str.contains('SLU')) & (df_group1['FZ\n(kN)'].astype(float).idxmax())]

но он дает мне фрейм данных только со всеми строками, содержащими SLU в столбце Load. Что я делаю неправильно? Почему не работают условия idxmax?

спасибо, BR, Алдар

1 Ответ

0 голосов
/ 31 августа 2018

Попробуйте это:

df.loc[[df.loc[df['Load'].str.contains('SLU'), 'FZ\n(kN)'].idxmax()]]

[выход]

   id  Node   Load  FX\n(kN)  FY\n(kN)  FZ\n(kN)  MX\n(kN*m)  MY\n(kN*m)
1   2     3  SLU_2  -52.7285  -6.19101   805.478   46.751259 -269.103795    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...