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

python+selenium怎么读取csv中的数据进行列表循环登录自动化参数登录

一个简易的PHP读取CSV文件的方法

Python从文件中读取数据

读取csv字典变成str了怎么办

Python 从 CSV 读取数据