У меня есть «состояния» фрейма данных, в котором есть уровень детской бедности каждого штата, и json файл с именем «us_states». Я хочу создать карту choropleth, используя plotly express, но мне не удается создать столбец id. Вот мой весь код.
import pandas as pd import json import plotly.express as px states = pd.read_csv('https://raw.githubusercontent.com/ngpsu22/Child-Poverty-State-Map/master/poverty_rate_map.csv') us_states = pd.read_json('https://github.com/ngpsu22/Child-Poverty-State-Map/raw/master/gz_2010_us_040_00_500k.json') state_id_map = {} for feature in us_states['features']: feature['id'] = feature['properties']['NAME'] state_id_map[feature['properties']['STATE']] = feature['id'] states['id'] = states['state'].apply(lambda x: state_id_map[x])
Но я получаю эту ошибку: KeyError: 'Maine' Что, поскольку штат Мэн первым в моем фрейме данных означает, что что-то идет не так.
Любые предложения ?
us_states.features
dict
pd.json_normalize
'geometry.coordinates'
pd.merge
us_states = pd.read_json('https://github.com/ngpsu22/Child-Poverty-State-Map/raw/master/gz_2010_us_040_00_500k.json') # convert the dict to dataframe us_states_features = pd.json_normalize(us_states.features, sep='_') # the Name column is addressed with us_states_features['properties_Name'] # join the two dataframe into one df = pd.merge(states, us_states_features, left_on='state', right_on='properties_NAME')