【问题标题】:Pandas drop rare entries熊猫掉落稀有条目
【发布时间】:2016-01-31 02:43:54
【问题描述】:

我是熊猫新手。 为了简化,我有一个包含两列的数据框:product_id 和 rating。每个条目都是给定产品的新评论。 现在我想获得一个新的数据框,其中删除了与收到少于 20 条评论(即在原始数据框中出现少于 20 次)的产品相对应的行。 我可以计算出现次数:

a = data.groupby('product_id').count()
b = a.loc[a['rating']>20]

但这给了我一个一维数据框。显示时,每个 product_id 都有其计数,但我无法访问实际的 product_id 以使用它们来过滤原始表。例如,

b.values

返回计数的一维数组,但不返回 product_ids。

【问题讨论】:

    标签: python pandas group-by


    【解决方案1】:

    你想filter:

    a = data.groupby('product_id').filter(lambda x: len(x) > 20)
    

    【讨论】:

    • 酷,记得接受我的回答,我的回答左上角会有一个空的勾号。
    • 完成!我也想知道这是如何工作的:不知何故 groupby+count 非常快,但过滤要慢得多,即使它们都是内置函数。
    • 大概在这里它必须解析过滤结果并根据该结果构建df,而对于count,这只是一个减少,而不必事后过滤结果是我的猜测。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2022-01-16
    • 1970-01-01
    • 2018-10-01
    • 2016-08-26
    • 2018-04-28
    相关资源
    最近更新 更多