rub*_*119 2 python group-by aggregate pandas pandas-groupby
我刚刚过滤了一些数据,现在我有一个 .csv 文件,但我注意到我只需要选择具有最低价格的行:
例子:
ORIGIN | DESTINA. | PRICE
____________________________
BOG | MAD | 1500
BOG | MAD | 750
BOG | MAD | 1250
BOG | MAD | 1350
BOG | MIA | 450
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,我想得到的只是第三行和第六行:
ORIGIN | DESTINA. | PRICE
____________________________
BOG | MAD | 750
BOG | MIA | 450
Run Code Online (Sandbox Code Playgroud)
使用 python,我怎样才能得到这个决赛桌?
使用GroupBy+transform与min:
df = df[df['PRICE'] == df.groupby('ORIGIN')['PRICE'].transform('min')]
Run Code Online (Sandbox Code Playgroud)
这将保留重复的分组最小值。如果你不希望保留副本,您可以进行排序,然后删除重复项:
df = df.sort_values('PRICE').drop_duplicates('ORIGIN')
Run Code Online (Sandbox Code Playgroud)