Python:从 CSV 读取数据类型 LineString
Posted
技术标签:
【中文标题】Python:从 CSV 读取数据类型 LineString【英文标题】:Python: Read datatype LineString from CSV 【发布时间】:2021-12-13 22:11:36 【问题描述】:我正在尝试将 LineString 数据类型从 CSV 文件读入 python。有人可以帮我有效地解析它。这就是我到目前为止所拥有的。我现在试图避免使用 geopandas,因为我的 Anaconda 安装失败了。
import pandas as pd
from shapely.geometry import LineString
road_data = pd.DataFrame(["LINESTRING (-79.38247448302049 43.64530088371729, -79.382245982944 43.64525978372071, -79.3816974827792 43.64537518376642)"], columns=['geometry']))
road_data.geometry = road_data.geometry.astype(LineString)
road = road_data.iloc[0]
print(road['geometry'].length)
【问题讨论】:
【参考方案1】:您可以使用shapely.wkt.loads
将字符串加载到形状对象中:
import shapely.wkt
road_data.geometry = road_data.geometry.apply(shapely.wkt.loads)
输出:
>>> road_data
geometry
0 LINESTRING (-79.38247448302049 43.645300883717...
现在,看起来好像什么都没发生。但是如果你看一下实际值,你会发现它是一个shapely.geometry.linestring.LineString
对象:
>>> road_data.geometry[0]
<shapely.geometry.linestring.LineString at 0x12772eb50>
>>> road_data.loc[0, 'geometry'].length
0.0007926752962040786
【讨论】:
以上是关于Python:从 CSV 读取数据类型 LineString的主要内容,如果未能解决你的问题,请参考以下文章
Python:从 CSV 读取数据类型 LineString