我只需要选择具有最低价格的行:
示例:
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,我怎样才能得到这个决赛桌?
使用
GroupBy
+ transform
与 min
:
df = df[df['PRICE'] == df.groupby('ORIGIN')['PRICE'].transform('min')]
这将保留重复的分组最小值。如果您不想想要保留重复项,您可以排序,然后删除重复项:
df = df.sort_values('PRICE').drop_duplicates('ORIGIN')