Pandas DataFrame:使用 Lambda 函数在新列中将 WKT 转换为 GeoJSON
Pandas DataFrame: convert WKT into GeoJSON in a new column using Lambda function
我有一些这种格式的数据:
Dep Dest geom
---- ---- -----
EDDF KIAD LINESTRING(3.961389 43.583333, 3.968056 43.580....
其中包含飞行轨迹。 geom 列包含 WKT 格式的坐标。可以通过库 geomet 将它们转换为 GeoJSON 格式,我想在新专栏中进行此操作。
为了用 Pandas 有效地做到这一点,我正在尝试做:
from geomet import wkt
import json
df = .... #load data to df
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x['geom'] )))
这是行不通的。有什么方法可以实现吗?
尝试更改以下行:
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x['geom'] )))
进入这个:
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x)))
这会产生预期的结果:
from geomet import wkt
import json
#Generate dataframe
df = pd.DataFrame({"Dep":["EDDf"],
"Dest": ["KIAD"],
"geom": ["LINESTRING(3.961389 43.583333, 3.968056 43.580)"]})
#Apply function to create new column
df["geojson"] = df["geom"].apply(lambda x: json.dumps(wkt.loads(x)))
这将创建:
Dep Dest geom geojson
0 EDDf KIAD LINESTRING(3.961389 43.583333, 3.968056 43.580) {"type": "LineString", "coordinates": [[3.9613...
我有一些这种格式的数据:
Dep Dest geom
---- ---- -----
EDDF KIAD LINESTRING(3.961389 43.583333, 3.968056 43.580....
其中包含飞行轨迹。 geom 列包含 WKT 格式的坐标。可以通过库 geomet 将它们转换为 GeoJSON 格式,我想在新专栏中进行此操作。
为了用 Pandas 有效地做到这一点,我正在尝试做:
from geomet import wkt
import json
df = .... #load data to df
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x['geom'] )))
这是行不通的。有什么方法可以实现吗?
尝试更改以下行:
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x['geom'] )))
进入这个:
df['geojson'] = df['geom'].apply(lambda x: json.dumps(wkt.loads(x)))
这会产生预期的结果:
from geomet import wkt
import json
#Generate dataframe
df = pd.DataFrame({"Dep":["EDDf"],
"Dest": ["KIAD"],
"geom": ["LINESTRING(3.961389 43.583333, 3.968056 43.580)"]})
#Apply function to create new column
df["geojson"] = df["geom"].apply(lambda x: json.dumps(wkt.loads(x)))
这将创建:
Dep Dest geom geojson
0 EDDf KIAD LINESTRING(3.961389 43.583333, 3.968056 43.580) {"type": "LineString", "coordinates": [[3.9613...