我有一个数据框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
对于在“装入”列中仅包含 SLU 的行,我需要获得整个行,其最大值为 FZ \ n(kN)。
我正在尝试将以下两个条件组合在一起,但是会出现一个箭头:
df_group1_SLU = df_group1.loc[(df_group1['Load'].str.contains('SLU')) & (df_group1['FZ\n(kN)'].astype(float).idxmax())]
但是它给我的数据框只有在Load列中所有包含SLU的行。 我究竟做错了什么?为什么idxmax条件不起作用?
谢谢, BR 阿尔达(Aldar)
答案 0 :(得分:0)
尝试一下:
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