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

时间:2018-05-31 20:44:44

标签: python python-2.7 numpy geopandas

我正在尝试将包含numpy float64数据类型的GeoDataFrame对象的列转换为常规float类型的数组。我想知道是否有办法在不迭代整个列的情况下做到这一点?

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

是我的目标,但是当我尝试将其序列化为JSON时,它会给出错误,即numpy数据类型float64不是JSON可序列化的。 gdf是GeoDataFrame,而轨迹_features是2维字典。

3 个答案:

答案 0 :(得分:2)

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

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

请参阅ndarray.tolist()文档(上面使用的pandas.Series.tolist()方法与之等效)

答案 1 :(得分:1)

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

答案 2 :(得分:0)

感谢@ Psy的回答,我能够解决问题。

我的代码:

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