Сопоставление столбцов с файлом Geo json - PullRequest
1 голос
/ 09 июля 2020

Я почти уверен, что у этой проблемы есть простое решение, но я на какое-то время застрял и не могу понять. Вот что я сделал до сих пор:

# 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 работал с фреймом данных, но я не могу понять, как это исправить. Цените ваш вклад, спасибо!

1 Ответ

0 голосов
/ 10 июля 2020

Когда вы группируете по 'ZIP', он преобразуется в индекс вашего фрейма данных, а индексы не являются столбцами, здесь у вас путаница. в столбец:

Как преобразовать индекс кадра данных pandas в столбец?

...