python - 如何使用 pandas python 找到数据框坐标中的最低左值和下值?

标签 python pandas

这些值是坐标,所以我想要左最低和顶部坐标的点,在本例中是(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/

相关文章:

python - 为什么我可以更新列表切片而不是 python 中的字符串切片?

python - 如何从全局python环境创建conda环境?

python - 在 python 内存装饰器类中设置 get/set 属性

python - 创建一个基于其他两个系列的新系列

c++ - 从正在运行的程序中读取值

函数调用中未知类实例的 Python 标准 (PEP) 名称

python - 在 DataFrame 中创建新行的最有效方法

Python - 每次 A 列等于 0 时从 B 列返回值

python - 使用 pandas 日期时间索引进行列表理解

python - 仅获取最低值的重复列