【问题标题】:Filter rows with minimum values groupwise in Pandas dataframe [duplicate]在 Pandas 数据框中按组过滤具有最小值的行 [重复]
【发布时间】: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 更改为minidxmax 更改为idxmin

标签: python pandas group-by aggregate pandas-groupby


【解决方案1】:

使用GroupBy + transformmin

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2011-11-14
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多