需要从散点图 (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'],升序=假)
我有一个具有不同值的数据集,如下所示:
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'],升序=假)