Я почти уверен, что у этой проблемы есть простое решение, но я на какое-то время застрял и не могу понять. Вот что я сделал до сих пор:
# import libraries
import folium
import pandas as pd
import numpy as np
import json
# import data
cases = pd.read_csv('COVID-19_Cases__Tests__and_Deaths_by_ZIP_Code.csv')
И затем я переименовываю столбец, который мне нужен, чтобы соответствовать файлу Geo json:
cases.rename(columns = {'ZIP Code':'ZIP'}, inplace = True)
Поскольку данные были перечислены неделю, и мне просто нужны самые свежие числа, я отсортировал их по почтовому индексу, чтобы просто получить максимальные значения, которые я искал:
cases_sorted = cases.groupby('ZIP')
maximums = cases_sorted.max()
Пока все хорошо. Я отбрасываю несколько ненужных строк:
maximums_cleaning = maximums.drop('60666',axis = 0)
maximums_cleaned = maximums_cleaning.drop('Unknown',axis = 0)
И мой фрейм данных выглядит так: Dataframe
Затем я загружаю карту:
import folium
map = folium.Map(location=[41.8781, -87.6298], default_zoom_start=15)
map
Измените столбец на тип String:
maximums_cleaned['ZIP']=maximums_cleaned['ZIP'].astype(str)
И тогда я получаю эту ошибку:
KeyError: 'ZIP'
И затем загрузите мой Geo Json файл наложить поверх него:
# load GeoJson
map.choropleth(geo_data="Boundaries - ZIP Codes.geojson",
data=maximums_cleaned, # my dataset
columns=['ZIP', 'Case Rate - Cumulative'], # zip code is here for matching the geojson zipcode, sales price is the column that changes the color of zipcode areas
key_on='feature.properties.postalCode',
fill_color='BuPu', fill_opacity=0.7, line_opacity=0.2,
legend_name='Cases')
Я снова получаю эту ошибку: KeyError: «Ни один из ['ZIP'] не находится в столбцах»
Я пробовал код без преобразования в строка и получил тот же код ошибки при загрузке моего файла Geo Json. Я также безуспешно пытался сгруппировать по разным столбцам. Я думаю, проблема в том, что столбец «Zip» - это первый столбец, а его заголовок ниже, чем у остальных. Я думаю, что это, вероятно, необходимо решить, чтобы файл Geo Json работал с фреймом данных, но я не могу понять, как это исправить. Цените ваш вклад, спасибо!