Python 按默认值删除行

Python 按默认值删除行,python,pandas,dataframe,Python,Pandas,Dataframe,我在这个论坛上找到了我感兴趣的代码。 但它对我的数据帧不起作用 输入: x , y ,value ,value2 1.0 , 1.0 , 12.33 , 1.23367543 2.0 , 2.0 , 11.5 , 1.1523123 4.0, 2.0 , 22.11 , 2.2112312 5.0, 5.0 , 78.13 , 7.8131239 6.0, 6.0 , 33.68 , 3.3681231 我需要删除距离在=1之间的行,只留下一个“值”最高的行 要获得的结果: 1.0 , 1.0

我在这个论坛上找到了我感兴趣的代码。 但它对我的数据帧不起作用

输入:

x , y ,value ,value2
1.0 , 1.0 , 12.33 , 1.23367543
2.0 , 2.0 , 11.5 , 1.1523123
4.0, 2.0 , 22.11 , 2.2112312
5.0, 5.0 , 78.13 , 7.8131239
6.0, 6.0 , 33.68 , 3.3681231
我需要删除距离在=1之间的行,只留下一个“值”最高的行

要获得的结果:

1.0 , 1.0 , 12.23 , 1.23367543
4.0, 2.0 , 22.11 , 2.2112312
5.0, 5.0 , 78.13 , 7.8131239
代码:

def dist_value_comp(行):

x_dist=abs(df['y']-row['y'])您对距离的定义是什么?在我看来,它不像欧几里德距离。
返回浮点(行['value'])==浮点(最大值)
没有帮助?@DYZ您好,距离是二维位置x和y之间的和。请看一下更新,当值在点后超过两个位置时,代码不起作用,为什么?@Pythonist你好,请看一下我编辑的问题,你对距离的定义是什么?在我看来,它不像欧几里德距离。
返回浮点(行['value'])==浮点(最大值)
没有帮助?@DYZ您好,距离是二维位置x和y之间的和。请看一下更新,当值在点后超过两个位置时,代码不起作用,为什么?@Pythonist您好,请看一下我编辑的问题
def dist_value_comp(row):                         
    x_dist = abs(df['y'] - row['y']) <= 1
    y_dist = abs(df['x'] - row['x']) <= 1
    xy_dist = x_dist & y_dist
    max_value = df.loc[xy_dist, 'value2'].max()
    return row['value2'] == max_value

df['keep_row'] = df.apply(dist_value_comp, axis=1)
df.loc[df['keep_row'], ['x', 'y','value', 'value2']]