在 Pandas 数据框中按组过滤具有最小值的行 [重复]
Posted
技术标签:
【中文标题】在 Pandas 数据框中按组过滤具有最小值的行 [重复]【英文标题】:Filter rows with minimum values groupwise in Pandas dataframe [duplicate] 【发布时间】:2019-04-02 23:08:34 【问题描述】:我刚刚过滤了一些数据,现在我有了一个 .csv 文件,但我注意到我只需要选择具有最低价格的行:
示例:
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,我怎样才能得到这个决赛桌?
【问题讨论】:
仅将max
更改为min
或idxmax
更改为idxmin
【参考方案1】:
使用GroupBy
+ transform
和min
:
df = df[df['PRICE'] == df.groupby('ORIGIN')['PRICE'].transform('min')]
这将保持重复的分组最小值。如果您不想要保留重复项,您可以排序,然后删除重复项:
df = df.sort_values('PRICE').drop_duplicates('ORIGIN')
【讨论】:
以上是关于在 Pandas 数据框中按组过滤具有最小值的行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 pandas 数据框中显示具有一个或多个 NaN 值的行