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

如何使用pandas将CSV文件转换为每个键对应多个值的字典

问题复现

你当前的CSV文件内容如下:

chicken, meat
veal, meat
rice, carbs
potato, carbs
carrot, veggies
mushroom, veggies
apples, fruits

当前使用的转换代码:

food = pd.read_csv('foods.csv',  header=None, index_col=1, squeeze=False).to_dict()

存在的问题:生成的字典每个键仅对应一个值,不符合预期。你期望得到的输出为:

{'carbs':['potato','rice'],
'meat':['chicken','veal'],
'veggies':['mushroom','carrot'],
'fruits':['apples']}
解决方法

原代码的问题在于:将分类列设为索引后直接转字典时,重复索引对应的取值会被后续值覆盖,最终仅保留同索引的最后一个值。
你可以按分类列分组后将对应食物项转为列表,再转字典即可,修改后的代码如下:

import pandas as pd

# 读取CSV文件,指定两列的列名
df = pd.read_csv('foods.csv', header=None, names=['food', 'category'])
# 按分类分组,将同分类的食物合并为列表后转为字典
food_dict = df.groupby('category')['food'].apply(list).to_dict()

运行上述代码得到的food_dict就是你需要的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:24:05