gpt4 book ai didi

python - 使用 Geopandas 选择 .shp 文件的特定区域

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:00 26 4
gpt4 key购买 nike

我有一个包含海洋界限的 .shp 文件。但是,我没有绘制所有这些,而是​​只对 6 感兴趣。Geopandas 创建了类似数据框的东西(我们称之为“df”),就像 Pandas 一样。是否可以创建一个只有“df”的那些选定区域的新数据框(“df1”)?

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import geopandas as gp

tes = gp.read_file(r'your\path\World_Seas_IHO_v1\World_Seas.shp')

tes1 = tes[(tes.NAME == "North Pacific Ocean"),
(tes.NAME == "South Pacific Ocean")]

tes1.plot()

plt.show()
plt.ion()

当我运行它时,“tes1”出现错误:

“系列对象是可变的,因此它们不能被散列。”

有什么想法吗?

谢谢!

最佳答案

(tes.NAME == "North Pacific Ocean"), (tes.NAME == "South Pacific Ocean") 是 bool 系列的元组。您不能将其作为索引器传递。您想使用按位或 | 组合 bool 系列,然后使用结果对数据帧进行切片。

from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
import geopandas as gp

tes = gp.read_file(r'your\path\World_Seas_IHO_v1\World_Seas.shp')

tes1 = tes[(tes.NAME == "North Pacific Ocean") |
(tes.NAME == "South Pacific Ocean")]

tes1.plot()

plt.show()
plt.ion()

或者你可以使用isin

tes = gp.read_file(r'your\path\World_Seas_IHO_v1\World_Seas.shp')

tes1 = tes[tes.NAME.isin(['North Pacific Ocean', 'South Pacific Ocean'])]

tes1.plot()

plt.show()
plt.ion()

enter image description here

关于python - 使用 Geopandas 选择 .shp 文件的特定区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45829228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com