我有一个包含3列的数据框:
"PathID","Area","Latitude","Longitude"
我首先尝试用
mygeom = [Point(xy) for xy in zip(mydataframe.Longtitude,mydataframe.Latitude)] mygeoframe = GeoDataFrame(mydataframe, geom=mygeom) mylines = mygeoframe.groupby(['PathID','Area'])['geometry'].apply(lambda x: LineString(x.tolist()))
我的问题是,我的一些PathID只包含一个点,因此可能不构成一个字符串。。
ValueError: LineStrings must have at least 2 coordinate tuples
有没有办法过滤掉lambda或其他地方没有2个坐标元组的元组?
您可以过滤那些导致错误的值,也可以使用try/catch块处理错误。我觉得后者会是一个更好、更简单的想法。
try: # line(s) that may throw an error except ValueError: # either do something or continue
同样,您也可以清理输入,并清除故障值。我只是觉得这样更干净,更有效率。