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

如何将含列表的DataFrame转换为合并重复ID的字典?

问题描述

我有一个包含标识符(id)和单元格列表的DataFrame,想要创建一个字典,其中键为标识符,值为DataFrame中对应id的所有元素合并后的列表。标识符可能重复,需要将重复id对应的多个列表合并。

示例输入DataFrame:

id    col1          
0  a  ['val1', 'val2']
1  b  ['val2', 'val3']
2  c  ['val1']
3  c  ['val5', 'val6']

期望输出字典:

{'a': ['val1', 'val2'], 'b': ['val2', 'val3'], 'c': ['val1', 'val5', 'val6']}
解决方案

方法一:使用pandas分组拼接

利用groupby按id分组,通过列表推导式平铺并合并每组的子列表,最后转换为字典:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'id': ['a', 'b', 'c', 'c'],
    'col1': [['val1', 'val2'], ['val2', 'val3'], ['val1'], ['val5', 'val6']]
})

# 分组处理并生成字典
result = df.groupby('id')['col1'].apply(lambda x: [item for sublist in x for item in sublist]).to_dict()
print(result)

方法二:手动遍历构建字典

直接遍历DataFrame的每一行,逐步填充字典,逻辑更直观:

result_dict = {}
for _, row in df.iterrows():
    current_id = row['id']
    current_list = row['col1']
    if current_id in result_dict:
        result_dict[current_id].extend(current_list)
    else:
        result_dict[current_id] = current_list.copy()
print(result_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 10:12:10