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

如何将Pandas DataFrame单行转换为不含索引的字典?

如何将DataFrame单行转换为不含索引的字典?

你遇到的问题是因为to_dict()直接对单行DataFrame转换时,会保留DataFrame的层级结构(列作为外层键,索引作为内层键)。要得到你想要的扁平字典,有几个简单的解决方案:

方法1:用iloc[0]提取单行转为Series后再转字典

先通过iloc[0]把筛选后的单行DataFrame转换成Series,Series的to_dict()方法会直接生成「列名: 单元格内容」的对应关系,不会带索引嵌套:

v = catStr_df[catStr_df['Item Number']==34881][['Bottle Volume (ml)', 'Pack']]\
.drop_duplicates(keep='first').iloc[0].to_dict()

执行后就能得到你期望的结果:{'Bottle Volume (ml)': 1000, 'Pack': 12}

方法2:用squeeze()压缩单行DataFrame为Series

squeeze()会自动把只有一行的DataFrame转换成Series,用法和上面类似,还能兼容筛选结果为空的情况(不会直接抛出索引越界错误):

v = catStr_df[catStr_df['Item Number']==34881][['Bottle Volume (ml)', 'Pack']]\
.drop_duplicates(keep='first').squeeze().to_dict()

方法3:手动处理原有字典(仅作参考,不推荐)

如果已经得到了带索引的字典,也可以通过遍历提取每个列对应的第一个值:

original_dict = catStr_df[catStr_df['Item Number']==34881][['Bottle Volume (ml)', 'Pack']]\
.drop_duplicates(keep='first').to_dict()
v = {col: list(values.values())[0] for col, values in original_dict.items()}

不过这种方法不如前两种简洁直观,优先推荐方法1和方法2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:43:09