我正在尝试将包含numpy float64数据类型的GeoDataFrame对象的列转换为常规float类型的数组。我想知道是否有办法在不迭代整个列的情况下做到这一点?
trajectory_features['points'][fid] = gdf[key]
是我的目标,但是当我尝试将其序列化为JSON时,它会给出错误,即numpy数据类型float64不是JSON可序列化的。 gdf是GeoDataFrame,而轨迹_features是2维字典。
答案 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)