当前位置: 首页 > 知识库问答 >
问题:

在数据帧[duplicate]中按组筛选具有最小值的行

傅皓君
2023-03-14

我刚刚过滤了一些数据,现在我有一个。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,如何获得最终的表?

共有1个答案

许寒
2023-03-14

使用GroupBy转换min

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

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

df = df.sort_values('PRICE').drop_duplicates('ORIGIN')
 类似资料:
  • 有一个数据帧: 以及熊猫系列: 如何创建包含c1在list1中的行的新数据帧。 输出:

  • 我有这样的矩阵: 我需要在最后一列中过滤它tp get value 1。所以结果应该是这样的: 我的当前代码是: 我的代码返回一个空数组。我一定错过了什么...

  • 我试图通过值过滤我的Json中的一个数组与Jsonpath。我想在下面的JSON中获得国家的long_name。为了做到这一点,我通过类型[0]==“国家”过滤adress_components,但它似乎不起作用。 我试过的JsonPath: 我想要的结果是:“加拿大”。 JSON: 谢谢你的帮助。

  • 我正在尝试筛选将< code>None作为行值的PySpark数据帧: 我可以使用字符串值正确过滤: 但这失败了: 但是每一类都有明确的价值。这是怎么回事?

  • 我有一个包含三列字符串的数据框。我知道第三列中只有一个值对前两列的每个组合都有效。要清理数据,我必须按数据帧按前两列进行分组,并为每个组合选择第三列的最常用值。 我的代码: 最后一行代码不起作用,它说“关键错误‘简称’”,如果我试图只按城市分组,那么我得到了一个断言错误。我能做什么来修复它?

  • 问题内容: 这是我的表结构: 我需要它仅返回这些行 意思是我只想要每个文件具有最新版本的功能。 我不想要下面的结果,即不是最新版本的唯一函数ID 我看过如何通过SQL中的另一列来选择具有MAX(列值),DISTINCT的行?,但会返回最新的唯一函数ID。 该查询必须与sqlite3兼容。 问题答案: 一种有效的方法通常是使用: 此查询可以利用上的索引。 这将查询重新表述为:“从表中获取其中相应文件