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

使用for循环追加字典至Pandas DataFrame报错问题求助

解决Pandas DataFrame追加字典键值对的错误问题

嗨,我来帮你搞定这个问题~咱们先拆解下你遇到的两个小问题:

错误原因分析

  1. 字典遍历方式不对:你写的for i, x in crimes1,默认只会遍历字典的键,每次循环只能拿到一个值,自然会触发ValueError: too many values to unpack (expected 2)的报错。要同时拿到键和值,得用crimes1.items()来遍历键值对。
  2. append方法参数错误:append只接受一个字典作为行数据,你之前传了两个分开的字典,这也是无法正常填充两列的原因。

修改后的for循环代码

把遍历方式和append的参数都调整后,代码就可以正常运行了:

import pandas as pd

crimes1 = {'SOUTHERN': 28445, 'NORTHERN': 20100, 'MISSION': 19503}
column_names = ['Neighborhood', 'Count']
crimes2 = pd.DataFrame(columns=column_names)

# 正确的循环写法
for neighborhood, count in crimes1.items():
    crimes2 = crimes2.append({'Neighborhood': neighborhood, 'Count': count}, ignore_index=True)

print(crimes2)

更高效的替代方案

不过要注意,Pandas里的append方法效率其实不高(尤其是数据量大的时候),推荐直接把字典转换成DataFrame,一步到位:

方法1:通过列表转换

crimes2 = pd.DataFrame(list(crimes1.items()), columns=column_names)

方法2:使用from_dict方法

crimes2 = pd.DataFrame.from_dict(crimes1, orient='index', columns=['Count'])
# 把索引转成列并重命名
crimes2 = crimes2.reset_index().rename(columns={'index': 'Neighborhood'})

这两种方法都能直接得到你想要的DataFrame,比循环append简洁高效得多~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:57:32