Конвертировать GeoSeries в обычный тип с плавающей точкой? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь преобразовать столбец объекта GeoDataFrame, содержащий numpy типы данных float64, в массив регулярных типов с плавающей точкой.Мне интересно, есть ли способ сделать это без итерации по всему столбцу?

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

Это то, что мне нужно далеко, но когда я пытаюсь сериализовать его в JSON, выдает ошибку, чтотип данных numpy float64 не поддерживает сериализацию в формате JSON.gdf - это GeoDataFrame, а trajectory_features - это двумерный словарь.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Благодаря ответу @ Psy мне удалось решить проблему.

Мой код:

trajectory_features['points'][fid] = numpy.ndarray.tolist(gdf[key].values)
0 голосов
/ 01 июня 2018

Вы можете использовать метод tolist, который преобразует массив или Серию в список Python, а сами значения затем также преобразуются в обычные числа Python:

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

См. ndarray.tolist() документы (вышеописанный pandas.Series.tolist() метод эквивалентен ему)

0 голосов
/ 31 мая 2018

Используйте numpy.ndarray.tolist(trajectory_features), чтобы преобразовать ваш массив numy в обычный список, содержащий ваши числа с плавающей запятой.

...