Я применил кластеризацию Kmeans для своих данных и попытался сопоставить кластеры с фолием
Код для карты:
Toronto_map_clusters = folium.Map(location=[latitude, longitude], zoom_start=11)
x = np.arange(kclusters)
ys = [i + x + (i*x)**2 for i in range(kclusters)]
colors_array = cm.rainbow(np.linspace(0, 1, len(ys)))
rainbow = [colors.rgb2hex(i) for i in colors_array]
markers_colors = []
for lat, lon, poi, cluster in zip(Toronto_merged['Latitude'], Toronto_merged['Longitude'], Toronto_merged['Neighborhood'], Toronto_merged['Cluster Labels']):
label = folium.Popup(str(poi) + ' Cluster ' + str(cluster), parse_html=True)
folium.CircleMarker(
[lat, lon],
radius=5,
popup=label,
color=rainbow[cluster-1],
fill=True,
fill_color=rainbow[cluster-1],
fill_opacity=0.7).add_to(Toronto_map_clusters)
Toronto_map_clusters
Я получаю ошибку ниже:
TypeError Traceback (most recent call last)
<ipython-input-81-5c051a345a95> in <module>()
16 radius=5,
17 popup=label,
***18 color=rainbow[cluster-1]***
19 fill=True,
*** 20 fill_color=rainbow[cluster-1]***
TypeError: list indices must be integers or slices, not float
Карта отображается без линий 18 и 20, но без разделения цветов кластера (так как значения цвета отсутствуют).
Спасибо за любые предложения!