将 GeoSeries 转换为常规浮点类型?

Convert GeoSeries to regular float type?

我正在尝试将包含 numpy float64 数据类型的 GeoDataFrame 对象的列转换为常规浮点类型的数组。我想知道是否有一种方法可以在不遍历整个列的情况下执行此操作?

trajectory_features['points'][fid] = gdf[key]

是我到目前为止所要做的,但是当我尝试将其序列化为 JSON 时,它给出了 numpy 数据类型 float64 不是 JSON 可序列化的错误。 gdf 是 GeoDataFrame,trajectory_features 是二维字典。

使用 numpy.ndarray.tolist(trajectory_features) 将您的 numpy 数组转换为包含浮点数的常规列表。

感谢@Psy 的回答,我得以解决问题。

我的代码:

trajectory_features['points'][fid] = numpy.ndarray.tolist(gdf[key].values)

您可以使用 tolist 方法,该方法会将数组或系列转换为 python 列表,然后值本身也会转换为常规 python 浮点数:

trajectory_features['points'][fid] = gdf[key].tolist()

参见ndarray.tolist()文档(上面使用的pandas.Series.tolist()方法等同)