我有一個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,我想prod根據 product_id列出與此串列對應的所有品牌名稱。我怎樣才能只使用groupby()和 get_group()函式來做到這一點?我可以pd.DataFrame()結合使用zip()函式來做到這一點,但效率太低,因為我需要單獨獲取每一列。
預期輸出(在資料框中)
Product_id Brand_name
1 'FW'
3 'FK'
4 'WU'
任何人都可以提供一些幫助嗎?
uj5u.com熱心網友回復:
您可以使用熊貓的功能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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353855.html
