我正在try 比较具有相同‘ID’的行,然后删除具有较高‘dist’的行.可以有多行具有相同的‘ID’. 我附上了样本数据框以供参考.

enter image description here

我试着对行进行迭代和比较,但无法实现. 感谢您的帮助和建议.

推荐答案

IIUC在需要时使用丢弃每个组的所有最大行数:

df['Dist'] = df['Dist'].astype(float)

out = df[df['Dist'].ne(df.groupby('Id')['Dist'].transform('max'))]

如果需要,则每个组仅删除最多一行:

out = df.drop(df.groupby('Id')['Dist'].idxmax())

如果每组需要最少的行数:

out = df.loc[df.groupby('Id')['Dist'].idxmin()]

Python相关问答推荐

我对打乒乓球有问题

Pandas 修改原始excel

键盘.任务组

telegram 机器人API setMyName不起作用

如何将新的SQL服务器功能映射到SQL Alchemy的ORM

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

是什么导致对Python脚本的jQuery Ajax调用引发500错误?

使文本输入中的文本与标签中的文本相同

如何用symy更新分段函数

如何计算两极打印机中 * 所有列 * 的出现次数?

根据条件将新值添加到下面的行或下面新创建的行中

比较两个数据帧并并排附加结果(获取性能警告)

将整组数组拆分为最小值与最大值之和的子数组

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

如何从具有不同len的列表字典中创建摘要表?

Pandas DataFrame中行之间的差异

在pandas中使用group_by,但有条件

如何在PySide/Qt QColumbnView中删除列

如何使用使用来自其他列的值的公式更新一个rabrame列?

人口全部乱序 - Python—Matplotlib—映射