You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按DataFrame中duplicated列的不同值分组存储为列表?

按duplicated列拆分DataFrame为字典列表的实现方案

原始DataFrame结构

idcountrycityamountduplicated
1FranceParis2001
2FranceParis2001
3FranceLyon502
4FranceLyon502
5FranceLyon502

需求说明

需要根据duplicated列的不同取值,将对应行转换为字典组成的列表,每个取值对应一个独立列表。

问题分析

你之前使用的df[df.duplicated(['country','city','amount', 'duplicated'], keep = False)]无法实现需求,因为所有行在指定列组合下都属于重复组的成员,所以返回的是整个原DataFrame,这不是分组拆分的逻辑。

实现代码

直接通过groupby按duplicated列分组,再将每组转换为字典列表:

# 分组并转换为字典列表的字典
grouped_lists = df.groupby('duplicated')[['id', 'country', 'city', 'amount']].apply(lambda x: x.to_dict('records')).to_dict()

# 获取对应分组的列表
list_1 = grouped_lists[1]
list_2 = grouped_lists[2]

输出结果

list_1

[
    {
        "id": 1,
        "country": "France",
        "city": "Paris",
        "amount": 200
    },
    {
        "id": 2,
        "country": "France",
        "city": "Paris",
        "amount": 200
    }
]

list_2

[
    {
        "id": 3,
        "country": "France",
        "city": "Lyon",
        "amount": 50
    },
    {
        "id": 4,
        "country": "France",
        "city": "Lyon",
        "amount": 50
    },
    {
        "id": 5,
        "country": "France",
        "city": "Lyon",
        "amount": 50
    }
]

补充说明

如果duplicated列的取值不确定或较多,可以遍历grouped_lists字典来批量处理所有分组,无需手动提取每个列表。

内容的提问来源于stack exchange,提问作者Taco22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:25:22