将 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()
方法等同)
我正在尝试将包含 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()
方法等同)