Python中如何按pandas dataframe的type列分组生成嵌套列表?
解决方案
直接用pandas groupby的聚合操作即可实现需求,以下是完整示例:
先构造模拟的测试数据(和你描述的结构一致):
import pandas as pd df = pd.DataFrame( { "type": ["X", "X", "X", "Y", "Y", "Y"], "value": [1, 4, 3, 6, 2, 2] } )
核心执行代码:
# 按type分组,将同组value聚合为列表,最终转为嵌套列表格式 nested_list = df.groupby("type", sort=False)["value"].agg(list).tolist() print(nested_list)
运行输出为你需要的格式:[[1, 4, 3], [6, 2, 2]]
补充说明:
- 代码中加
sort=False是为了保持分组顺序和DataFrame中type出现的顺序一致,如果你需要按type的字典序排序,去掉该参数即可 - 该逻辑不限制每个type对应的value数量,即使后续单组value数量不是3个也可以正常运行
- 如果你需要同时保留type和对应value列表的映射,可以用
df.groupby("type")["value"].agg(list).to_dict()得到字典格式的结果
内容的提问来源于stack exchange,提问作者jexplore
相关产品推荐
相关产品推荐

