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

如何对Pandas DataFrame按指定列分组并转为嵌套字典

按列分组Pandas DataFrame并转换为嵌套字典

输入示例

给定如下三列的Pandas DataFrame:

import pandas as pd

input_df = pd.DataFrame({
    'A': ['asset_one', 'asset_one', 'asset_two'],
    'B': ['item_one', 'item_two', 'item_three'],
    'C': ['feature_a', 'feature_b', 'feature_c']
})

期望输出

需要按列A分组后,生成嵌套字典:外层键为分组名称,内层字典为对应分组中B列与C列的键值对:

output = {
    'asset_one': {'item_one': 'feature_a', 'item_two': 'feature_b'},
    'asset_two': {'item_three': 'feature_c'}
}

解决方案

以下是两种简洁高效的实现方式:

方法1:groupby + apply 结合 dict(zip())

通过分组后对每个子DataFrame直接构建键值对字典:

output = input_df.groupby('A').apply(lambda x: dict(zip(x['B'], x['C']))).to_dict()

方法2:先设置索引再分组转换(更高效)

先将B列设为索引,再按A分组后直接将C列转换为字典:

output = input_df.set_index('B').groupby('A')['C'].apply(dict).to_dict()

两种方法都能得到符合要求的嵌套字典结果,第二种方法在处理大数据量时性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:35:08