在 Pandas 数据框中按组过滤具有最小值的行[重复]

问题描述 投票:0回答:1

我只需要选择具有最低价格的行:

示例:

ORIGIN   | DESTINA. | PRICE
____________________________
BOG      | MAD      |  1500
BOG      | MAD      |  750
BOG      | MAD      |  1250
BOG      | MAD      |  1350
BOG      | MIA      |   450

所以在这个例子中,我只想得到第三行和第六行:

ORIGIN   | DESTINA. | PRICE
____________________________
BOG      | MAD      | 750
BOG      | MIA      | 450

使用python,我怎样才能得到这个决赛桌?

python pandas group-by aggregate
1个回答
9
投票

使用

GroupBy
+
transform
min
:

df = df[df['PRICE'] == df.groupby('ORIGIN')['PRICE'].transform('min')]

这将保留重复的分组最小值。如果您不想想要保留重复项,您可以排序,然后删除重复项:

df = df.sort_values('PRICE').drop_duplicates('ORIGIN')
© www.soinside.com 2019 - 2024. All rights reserved.