Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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 获取列子集中与条件相关的行的最大值_Python_Pandas - Fatal编程技术网

Python 获取列子集中与条件相关的行的最大值

Python 获取列子集中与条件相关的行的最大值,python,pandas,Python,Pandas,我有一个如下所示的数据帧: 造假者 -5 -4 -3 -2 -1 0 1. 2. 3. 4. 5. 1. 37 14 17 29 31 34 32 31 21 17 18 2. 12 13 12 16 30 33 37 32 32 15 42 3. 40 16 29 31 36 32 30 19 16 15 12 4. 12 14 12 28 28 30 29 27 16 18 33 5. 12 13 16 17 28 32 33 30 29 17 35 您可以使用布尔索引和loc来过滤-2到2

我有一个如下所示的数据帧:

造假者 -5 -4 -3 -2 -1 0 1. 2. 3. 4. 5. 1. 37 14 17 29 31 34 32 31 21 17 18 2. 12 13 12 16 30 33 37 32 32 15 42 3. 40 16 29 31 36 32 30 19 16 15 12 4. 12 14 12 28 28 30 29 27 16 18 33 5. 12 13 16 17 28 32 33 30 29 17 35
您可以使用
布尔索引
loc
来过滤
-2
2
范围内的列,然后沿
轴=1使用
idxmax

c = df.columns.astype(int)
df['MaxVal_Dist'] = df.loc[:, (c >= -2) & (c <= 2)].idxmax(1)
您可以尝试:


[1159]中的
:cols=[i代表df.columns[1:]如果-2这对我想做的事情非常有效!谢谢Shubham。对于所有像我一样迷路的人,如果你的数字有小数,它也会起作用。另外,确保你的第一行是标题!我的不是,所以一开始它不起作用。我遵循这个:这对我想做的事情也非常有效!谢谢Mayank。对所有的人就像我一样,如果你的数字有小数,它也会起作用。另外,请确保你的第一行是标题!我的不是,因此它最初不起作用。我遵循以下步骤:
FakeDist  -5  -4  -3  -2  -1   0   1   2   3   4   5 MaxVal_Dist
1         37  14  17  29  31  34  32  31  21  17  18           0
2         12  13  12  16  30  33  37  32  32  15  42           1
3         40  16  29  31  36  32  30  19  16  15  12          -1
4         12  14  12  28  28  30  29  27  16  18  33           0
5         12  13  16  17  28  32  33  30  29  17  35           1
In [1159]: cols = [i for i in df.columns[1:] if -2 <= int(i) <= 2]

In [1161]: df['MaxVal_Dist'] = df[cols].idxmax(axis=1)

In [1162]: df
Out[1162]: 
   FakeDist  -5  -4  -3  -2  -1   0   1   2   3   4   5 MaxVal_Dist
0         1  37  14  17  29  31  34  32  31  21  17  18           0
1         2  12  13  12  16  30  33  37  32  32  15  42           1
2         3  40  16  29  31  36  32  30  19  16  15  12          -1
3         4  12  14  12  28  28  30  29  27  16  18  33           0
4         5  12  13  16  17  28  32  33  30  29  17  35           1