Чтение шейп-файлов в Dataframe - PullRequest
0 голосов
/ 12 марта 2019

У меня есть шейп-файл, который я хотел бы преобразовать в dataframe в Python 3.7.Я пробовал следующие коды:

import pandas as pd
import shapefile
sf_path = r'data/shapefile'
sf = shapefile.Reader(sf_path, encoding = 'Shift-JIS')

fields = [x[0] for x in sf.fields][1:]
records = sf.records()
shps = [s.points for s in sf.shapes()]

sf_df = pd.DataFrame(columns = fields, data = records)

Но я получил это сообщение об ошибке, говорящее

TypeError: Expected list, got _Record

Так как мне преобразовать список в _Record или есть способ обойти это?Я тоже пробовал GeoPandas, но у меня возникли проблемы с его установкой.Спасибо!

1 Ответ

0 голосов
/ 07 апреля 2019

У меня была такая же проблема, и это потому, что файл .shp имеет своего рода ключевое поле в каждой записи, и при преобразовании в фрейм данных ожидается список, и только это поле найдено, тестовое изменение :

  records = [y[:] for y in sf.records()]

Я надеюсь, что это работает!

...