使用for循环使用字典附加数据帧

2024-09-30 19:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字典,我想将它们添加到熊猫数据框中:

crimes1 = {'SOUTHERN': 28445,
 'NORTHERN': 20100,
 'MISSION': 19503}
< >我用我想要的列名创建空白数据框:

column_names = ['Neighborhood', 'Count']
crimes2 = pd.DataFrame(columns=column_names)

接下来,我想使用for循环将包含上述键和值的字典附加到dataframe:

for i, x in crimes1:
    crimes2 = crimes2.append({'Neighborhood': i}, {'Count': x}, ignore_index=True)

我得到的错误是ValueError: too many values to unpack (expected 2)

当我单独填充一列时,我只能填充一列,但似乎无法将这两个列都放入一个数据帧中。关于如何使用上面的for循环使其工作,有什么想法吗


Tags: 数据dataframefor字典namescountcolumn空白
3条回答

你可以试试这个

crimes2 = pd.DataFrame(crimes1.items(), columns=['Neighborhood', 'Count'])
  Neighborhood  Count
0     SOUTHERN  28445
1     NORTHERN  20100
2      MISSION  19503

您得到的是ValueError,因为您没有调用crimes1.items(),这是遍历字典的键、值对所必需的。简单地说,使用:

for i, x in crimes1.items():
    crimes2 = crimes2.append({'Neighborhood': i, 'Count': x}, ignore_index=True)

结果:

# print(crimes2)
  Neighborhood  Count
0     SOUTHERN  28445
1     NORTHERN  20100
2      MISSION  19503

您可以使用map函数

crimes2 = pd.DataFrame(map(list, crimes1.items()))

crimes2.columns = ['Neighborhood', 'Count']

相关问题 更多 >