小编Isa*_*c A的帖子

如何在特定缩放级别显示标记?

我能够使用以下命令显示美国数据地理每个部分的标记(以美国数据为例,因为无法显示工作数据结果):

import dload
from shapely.geometry import shape
import geopandas as gpd
import pandas as pd
import folium

json_string = 'https://raw.githubusercontent.com/datasets/geo-admin1-us/master/data/admin1-us.geojson'

j = dload.json(json_string)

gdf_usa = gpd.GeoDataFrame.from_features(j["features"])
gdf_usa.head()

gdf_usa_new = gpd.GeoDataFrame(gdf_usa, crs="EPSG:4326", geometry='geometry')

usa_map = gdf_usa_new.explore(tiles='CartoDB  positron')
usa_map

gdf_usa_new["long"] = gdf_usa_new.to_crs(epsg='4326').centroid.map(lambda p: p.x)
gdf_usa_new["lat"] = gdf_usa_new.to_crs(epsg='4326').centroid.map(lambda p: p.y)

for i in range(0,len(gdf_usa_new)):
    folium.Marker(
      location=[gdf_usa_new.iloc[i]['lat'], gdf_usa_new.iloc[i]['long']],
      popup=gdf_usa_new.iloc[i]['name'],
      icon=folium.DivIcon(html=f"""<div style="font-family: courier new; color: white">{gdf_usa_new.iloc[i]['name']}</div>""")
   ).add_to(usa_map)

usa_map
Run Code Online (Sandbox Code Playgroud)

鉴于上述情况,我得到以下结果。可以看出,标记彼此距离太近,因此在美国东部重叠。

在此输入图像描述

当我放大时,标记看起来更清晰,因此不会重叠。

在此输入图像描述

因此,如何修改代码以便在放大地图时显示标记?因此,当缩小地图时,只会出现某些标记,而当我放大地图时,则会出现其余标记。

我尝试遵循下面的答案,但很难理解在上面的代码中包含建议的答案的位置:

https://gis.stackexchange.com/questions/216558/leaflet-resize-markers-in-layer-when-zoom-in

更新,我已经添加了上面链接中的代码(见下文),但地图的结果仍然保持不变。

usa_map.get_root().html.add_child(folium.Element("""
var ar_icon_1 = ...;
var ar_icon_2 = ...;
var ar_icon_1_double_size …
Run Code Online (Sandbox Code Playgroud)

python gis leaflet geopandas folium

8
推荐指数
1
解决办法
1192
查看次数

名称'DataFrameSelector'未定义

我目前正在阅读"Scikit-Learn&TensorFlow的动手机器学习".当我尝试重新创建Transformation Pipelines代码时出错.我怎样才能解决这个问题?

码:

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

num_pipeline = Pipeline([('imputer', Imputer(strategy = "median")),
                        ('attribs_adder', CombinedAttributesAdder()),
                        ('std_scaler', StandardScaler()),
                        ])

housing_num_tr = num_pipeline.fit_transform(housing_num)

from sklearn.pipeline import FeatureUnion

num_attribs = list(housing_num)
cat_attribs = ["ocean_proximity"]

num_pipeline = Pipeline([
                         ('selector', DataFrameSelector(num_attribs)),
                         ('imputer', Imputer(strategy = "median")),
                         ('attribs_adder', CombinedAttributesAdder()),
                         ('std_scaler', StandardScaler()),
                        ])

cat_pipeline = Pipeline([('selector', DataFrameSelector(cat_attribs)), 
                         ('label_binarizer', LabelBinarizer()),
                        ])

full_pipeline = FeatureUnion(transformer_list = [("num_pipeline", num_pipeline), 
                                                 ("cat_pipeline", cat_pipeline),
                                                ])

# And we can now run the whole pipeline simply:

housing_prepared = full_pipeline.fit_transform(housing) …
Run Code Online (Sandbox Code Playgroud)

python pipeline scikit-learn

6
推荐指数
3
解决办法
6012
查看次数

如何将两行合并为一行?

如果我有下表:

在此输入图像描述

如何根据特定列合并两行或多行?在本例中,它是列 Col_4。

在此输入图像描述

python pandas

2
推荐指数
1
解决办法
60
查看次数

标签 统计

python ×3

folium ×1

geopandas ×1

gis ×1

leaflet ×1

pandas ×1

pipeline ×1

scikit-learn ×1