Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dataframe在1列上选择最大值,在另一列上选择其他条件。_Python_Pandas - Fatal编程技术网

Python Dataframe在1列上选择最大值,在另一列上选择其他条件。

Python Dataframe在1列上选择最大值,在另一列上选择其他条件。,python,pandas,Python,Pandas,我有一个数据帧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

我有一个数据帧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
对于Load列中仅包含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条件不起作用

谢谢, 比尔, 阿尔达试试这个:

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    

成功了!我不完全明白为什么,但谢谢你。如果我需要找到最大绝对值怎么办?df.loc[[df.loc[df['Load'].str.contains('SLU'),'FZ\n(kN')).abs().idxmax()]正确吗?@AldarBudayev Yeh,可以