Добавить pandas dataframe со словарем, используя цикл for - PullRequest
1 голос
/ 30 мая 2020

У меня есть следующий словарь, и я хочу добавить его в pandas фрейм данных:

crimes1 = {'SOUTHERN': 28445,
 'NORTHERN': 20100,
 'MISSION': 19503}

Я создаю пустой фрейм данных с нужными мне именами столбцов:

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

Затем я хочу добавить фрейм данных со своим словарем, содержащим ключи и значения выше, используя для l oop:

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

Я получаю ошибку ValueError: too many values to unpack (expected 2)

I может заполнить только один столбец, когда я делаю это отдельно, но, похоже, не могу поместить оба в один фрейм данных. Есть идеи, как заставить это работать, используя для l oop выше?

Ответы [ 3 ]

0 голосов
/ 30 мая 2020

Вы можете использовать функцию map

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

crimes2.columns = ['Neighborhood', 'Count']
0 голосов
/ 30 мая 2020

Вы можете попробовать это.

crimes2 = pd.DataFrame(crimes1.items(), columns=['Neighborhood', 'Count'])
  Neighborhood  Count
0     SOUTHERN  28445
1     NORTHERN  20100
2      MISSION  19503
0 голосов
/ 30 мая 2020

Вы получаете 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
...