Python 使用Pandas删除值高于具有相同id的所有行的最小值的行
因此,我有以下数据帧:Python 使用Pandas删除值高于具有相同id的所有行的最小值的行,python,excel,pandas,dataframe,pandas-groupby,Python,Excel,Pandas,Dataframe,Pandas Groupby,因此,我有以下数据帧: id value 0 a 1 1 a 1 2 a 2 3 b 3 4 b 3 例如,对于id为“a”的行,最小值为1,对于id为“b”的行,最小值为3,因此不会删除任何行 输出: id value 0 a 1 1 a 1 2 b 3
id value
0 a 1
1 a 1
2 a 2
3 b 3
4 b 3
例如,对于id为“a”的行,最小值为1,对于id为“b”的行,最小值为3,因此不会删除任何行
输出:
id value
0 a 1
1 a 1
2 b 3
3 b 3
到目前为止,我只对具有相同id的行进行了分组,并找到了它们的最低值,但无法找到删除所有预期行的方法。
我使用了以下命令:
min_values = df.loc[df.groupby(['id'])['value'].idxmin()]['value']
使用
transform
(idxmin
:将仅返回最小值的第一个索引,在您的情况下,您有重复项,因此它不会返回所有索引)
df[df.value==df.groupby('id').value.transform('min')]
Out[257]:
id value
0 a 1
1 a 1
3 b 3
4 b 3