如何按类别将Pandas DataFrame转换为元组列表
实现方法
直接用 Pandas 自带的分组聚合逻辑即可完成需求,完整可运行代码如下:
import pandas as pd data = {'product_id': ['5', '7', '8', '5', '30'], 'id_customer': ['1', '1', '1', '3', '3']} df = pd.DataFrame.from_dict(data) result = df.groupby('id_customer')['product_id'].apply(tuple).tolist() print(result) # 输出:[('5', '7', '8'), ('5', '30')]
步骤说明
- 调用
groupby('id_customer')按照客户id对数据集进行分组 - 提取分组后的
product_id字段,对每个分组的数值序列执行tuple()方法,转为元组格式 - 最后调用
tolist()方法将聚合结果转为列表,得到目标输出
如果需要保留原数据中客户id的出现顺序,不需要按客户id排序,可以在分组时添加sort=False参数:
result = df.groupby('id_customer', sort=False)['product_id'].apply(tuple).tolist()
内容的提问来源于stack exchange,提问作者vojta
相关产品推荐
相关产品推荐

