这些值是坐标,所以我想要左最低和顶部坐标的点,在本例中是(709.4787,265.1082)
x y
709.4787 265.1082
699.0114 303.2652
842.2347 343.4130
我怎样才能做到这一点?
最佳答案
如果您想要其中 x
为最小值且 y
为最大值的行(同一行),您可以可以做:
df.loc[(df['x'] == df['x'].min()) & (df['y'] == df['y'].max())]
使用您的数据示例,这将返回第三行,它满足这两个条件:
x y
2 1 2
如果您只想要一列的最小值和另一列的最大值,请使用 pandas DataFrame agg :
df.agg({'x':'min', 'y':'max'})
使用您的数据样本返回:
x 1
y 2
dtype: int64
问题编辑后编辑
所以这只是距原点距离的问题。首先,您可以创建一个新列,在其中计算距原点的距离,然后选择距离最小的行。
df['d'] = np.sqrt(df['x']**2 + df['y']**2)
df.loc[df['d'] == df['d'].min()]
假设所有坐标(x 和 y)均为正值,则此方法有效。如果有负值,请将轴平移一个偏移量,以便在计算距离之前所有数字均为正值。
关于python - 如何使用 pandas python 找到数据框坐标中的最低左值和下值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57930937/