【问题标题】:Subsets of a data frame where certain columns satisfy a condition某些列满足条件的数据框的子集
【发布时间】:2021-11-08 02:50:28
【问题描述】:

我有一个数据集 catalog,包含 3 列:产品 ID、品牌名称和产品类别。

import pandas as pd
catalog = {'product_id': [1, 2, 3, 1, 2, 4, 3, 5, 6],
        'brand_name': ['FW', 'GW', 'FK','FW','GW','WU','FK','MU', 'AS'],
        'product_class': ['ACCESSORIES', 'DRINK', 'FOOD', 'ACCESSORIES', 'DRINK', 'FURNITURE','FOOD', 'ELECTRONICS', 'APPAREL']}

df = pd.DataFrame(data=catalog)

假设我有一个产品 ID prod = [1,3,4]. 的列表,现在,使用 Python,我想根据 product_id 列出与此列表 prod 对应的所有品牌名称。如何仅使用 groupby() 和 get_group() 函数来做到这一点?我可以使用pd.DataFrame() 结合zip() 函数来做到这一点,但是效率太低,因为我需要单独获取每一列。

预期输出(在数据框中)

Product_id      Brand_name
1               'FW'
3               'FK'
4               'WU'                

任何人都可以提供一些帮助吗?

【问题讨论】:

    标签: python-3.x dataframe group-by


    【解决方案1】:

    您可以使用 pandas 函数 isin() 和 drop_duplicates() 来实现:

    prod = [1,3,4]
    print(df[df.product_id.isin(prod)][["product_id", "brand_name"]].drop_duplicates())
    

    输出:

       product_id brand_name
    0           1         FW
    2           3         FK
    5           4         WU
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 2016-09-10
      • 2015-02-14
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多