条件Pandas与matplotlib相结合



我有一个很有趣的问题。我有一个数据帧,其中包含由GPS中的事件触发的汽车数据。该数据还包含GPS数据。然而,我在Matplot中制作了一个多边形,我想限制我的GPS数据。换句话说,我正在尝试过滤掉用GPS点创建的多边形内部记录的数据。我尝试通过首先在matplotlib(poly_path.contains_point(point)(中添加一个具有内置条件的新列来解决这个问题。

我的GPS专栏如下:

GPS数据:

GPS
(57.723124, 11.923557)
(57.724115, 11.933557)
(57.723124, 11.923557)
...

我想使用这个条件添加一个新列。

GPS数据:

GPS                    Is inside Polygon
(57.723124, 11.923557) True
(57.724115, 11.933557) False
(57.723124, 11.923557) True
...

我试着通过添加以下行来解决这个问题:

df1filt["Is inside Polygon"] = poly_path.contains_point(df1filt['GPS'])

但是不起作用。

有什么想法吗?

提前谢谢!

尝试:

df1filt["Is inside Polygon"] = df1filt['GPS'].apply(poly_path.contains_point)

编辑:

如果列的数据类型是字符串,则需要创建一个清理函数,应用它,然后尝试我的第一个解决方案。

例如

def clean_gps_col(text):
text = text[1:-1]
text = text.split(',')
return (float(text[0]), float(text[1]))
df1filt['GPS_cleaned'] = df1filt['GPS'].apply(clean_gps_col)

现在试试的第一个解决方案

df1filt["Is inside Polygon"] = df1filt['GPS_cleaned'].apply(poly_path.contains_point)

最新更新