#python #pandas #numpy
#python #панды #numpy
Вопрос:
я пытаюсь создать карту choropleth с помощью folium, и это мой код:
import pandas as pd
import numpy as np
df3 = pd.read_csv(r'crime in SF.csv')
count = ['Count']
df4 = df3.groupby('Neighborhood')[count].sum()
df4.reset_index(inplace = True)
df4['Count'] = df4['Count'].astype(int)
data = {"Neighborhood": df4["Neighborhood"], 'Count': df4['Count']}
df5= pd.DataFrame(data)
введите описание изображения здесь
import json
sf= json.load(open('san-francisco.geojson', 'r'))
sf= r'san-francisco.json'
import folium
world_map=folium.Map([37.77, -122.42], zoom_start=12, tiles='Mapbox Bright')
threshold_scale = np.linspace(df5['Count'].min(),
df5['Count'].max(),
6, dtype= int)
threshold_scale = threshold_scale.tolist()
threshold_scale[-1]= threshold_scale[-1] 1
folium.Choropleth(geo_data= sf,
name ='choropleth',
data= df5,
columns= ['Neighborhood','Count'],
key_on='feature.properties.OBJECTID',
color='YlOrRd',
highlight=True,
fill_opacity = 0.7,
line_opacity=0.2,
legend_name='Crime Rate in San Fancisco',
threshold_scale=threshold_scale,
reset=True).add_to(world_map)
folium.LayerControl().add_to(world_map)
display(world_map)
введите описание изображения здесь
он всегда выдает ошибку о чем-то в ячейках (см. Изображение 2) и говорит что-то о гистограмме, хотя я не писал никакого кода о гистограммах
Ответ №1:
У вас проблема с ячейками в вашей переменной threshold_scale
. Вы можете распечатать содержимое этой переменной, чтобы понять проблему. Вы указываете, что хотите иметь ячейки в виде int
чисел, и я думаю, что numpy хранит его в виде целого числа из 32 бит (или меньше), поэтому максимальное число, которое вы можете использовать, равно 2147483647, а ваши значения в df5
выше этого числа. Чтобы решить вашу проблему, вы можете использовать int64
вместо :
threshold_scale = np.linspace(df5['Count'].min(),
df5['Count'].max(),
6, dtype= np.int64)