需要从散点图 (x-y) 中提取最高值:最高 X 和最高 Y

Need to extract the top values from a scatter (x-y) plot: highest X and highest Y

我有一个具有不同值的数据集,如下所示:

     name   X   Y
       a    1   8
       b    11  12
       c    8   8
       d    4   13
       e    12  4
       f    11  11
       g    0   8
       h    0   9
       i    11  7

以及基于它的情节:

我需要得到的是前 4(红色圆圈)或前 'any number' 的数据框。类似这样的东西:

  name  X   Y
    b   11  12
    f   11  11
    i   11  7
    c   8   8

我一直在使用以下方法,但效果不佳:

df1 = df.sort_values(['A', 'B'],ascending=False)
print(df1)

您可以尝试以下操作:

 df['Z']= (df.X*df.Y)
 df2=(df.sort_values('Z',ascending=False).head(4))
 df2[['X','Y']]

输出:

 X  Y
11  12
11  11
11  7
8   8

不明白 'highest' 的真正含义。红圈内的点并不都是X轴或Y轴前4个点。

所以我认为你的意思可能是指定点和参考点之间的距离(例如 [0,0] 或其他)。 如果是这样的话,可以尝试定义一个新的参数。

df['c']=np.sqrt((df['x']-X0)**2+(df['y']-Y0)** 2)

df=df.sorted_value(['c'],升序=假)