如何用Python从数据集中获取指定用户的点餐记录?
获取指定用户的全部菜品(Python实现)
下面给你两种常用的实现方法,根据你的数据集类型选择即可:
一、原生Python处理(适合小型数据集)
如果你的数据集是列表嵌套字典的格式,比如:
# 示例数据集 dataset = [ {"user_id": "U1077", "dish": "宫保鸡丁"}, {"user_id": "U1078", "dish": "鱼香肉丝"}, {"user_id": "U1077", "dish": "麻婆豆腐"}, {"user_id": "U1079", "dish": "水煮鱼"}, {"user_id": "U1077", "dish": "宫保鸡丁"} ]
可以用列表推导式快速筛选指定用户的菜品:
target_user = "U1077" # 提取该用户的所有菜品(包含重复项) user_dishes = [item["dish"] for item in dataset if item["user_id"] == target_user] # 如果需要去重,转成集合再转回列表 unique_user_dishes = list(set(user_dishes)) print("用户U1077点的所有菜品:", user_dishes) print("去重后的菜品:", unique_user_dishes)
二、pandas处理(适合大型数据集)
如果数据集是CSV、Excel这类表格格式,用pandas处理会更高效:
import pandas as pd # 从CSV读取数据集(替换成你的文件路径) df = pd.read_csv("your_dataset.csv") # 或者用示例数据创建DataFrame df = pd.DataFrame([ {"user_id": "U1077", "dish": "宫保鸡丁"}, {"user_id": "U1078", "dish": "鱼香肉丝"}, {"user_id": "U1077", "dish": "麻婆豆腐"}, ]) target_user = "U1077" # 筛选指定用户的行,提取dish列 user_dishes = df[df["user_id"] == target_user]["dish"].tolist() # 去重的话用drop_duplicates方法 unique_user_dishes = df[df["user_id"] == target_user]["dish"].drop_duplicates().tolist() print("用户U1077点的所有菜品:", user_dishes)
内容的提问来源于stack exchange,提问作者Pragya Mishra
相关产品推荐
相关产品推荐

