在Pandas中按组过滤具有最小值的行[duplicate]

5ktev3wc  于 2023-11-15  发布在  其他
关注(0)|答案(1)|浏览(81)

此问题在此处已有答案

Get the row(s) which have the max value in groups using groupby(15个回答)
Keep other columns when doing groupby(5个答案)
5年前关闭。
我只需要选择具有最低价格的行:
例如:

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,我如何得到这个最终表?

ecbunoof

ecbunoof1#

使用GroupBy + transformmin

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

字符串
这将保持重复的分组最小值。如果你不想保留重复的,你可以排序,然后删除重复的:

df = df.sort_values('PRICE').drop_duplicates('ORIGIN')

相关问题