我已经对此进行了一段时间的搜索,但无法给出令人满意的答案,因为我知道该如何实现。我是一名Python新手,正在尝试找出一种将函数中的几个函数链接在一起的Python方法。
我的功能仅仅是将形状文件转换为可用于地图的不可知工具格式。
该功能按预期工作,看上去确实很不雅致,创建功能然后逐个应用功能,但是如上所述,我找不到一种更轻松的方式...
import re
import pandas as pd
def shape_to_string(shp_in):
# convert geoseries to list of strings
shp_in = list(shp_in.astype(str))
# function to strip out numeric, brackets and leading/trailing spaces
strip_chars = lambda x: re.sub('[aA-zZ()]','', x).lstrip().rstrip()
# function to split on space
split_string = lambda x: x.split(' ')
# apply function over incoming list
clean_shp = list(map(strip_chars, shp_in))
split_shp = list(map(split_string, clean_shp))
# format as dataframe
cols = ['long', 'lat']
shp_out = pd.DataFrame(split_shp, columns=cols)
return(shp_out)
示例数据:
0 POINT (540409.1130999997 185311.6275999993)
1 POINT (541906.0785999997 185683.2414999995)
2 POINT (543515.8586999997 186487.3535999991)
3 POINT (545384.0466999998 187089.3987000007)
4 POINT (546470.5884999996 187325.4045000002)