【问题标题】:How to avoid the error "ValueError: LineStrings must have at least 2 coordinate tuples"?如何避免错误“ValueError:LineStrings 必须至少有 2 个坐标元组”?
【发布时间】:2019-08-13 01:54:49
【问题描述】:

我有一个包含 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 仅包含一个点,因此可能不构成 LineString..

ValueError: LineStrings must have at least 2 coordinate tuples

有没有一种方法可以通过在我的 lambda 或其他地方过滤掉没有 2 个坐标元组的那些来绕过?

【问题讨论】:

    标签: python pandas geopandas


    【解决方案1】:

    您可以过滤那些导致错误的值,或者您可以使用 try/catch 块来处理错误。我觉得后者会是一个更好、更简单的想法。

    try:
        # line(s) that may throw an error
    except ValueError:
        # either do something or continue
    

    同样,您也可以清理输入并摆脱麻烦值。我只是认为这种方式更清洁,并且可能更有效。

    【讨论】:

      猜你喜欢
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 2014-02-10
      • 2014-09-13
      • 2022-01-19
      • 1970-01-01
      相关资源
      最近更新 更多