Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Read a shapefile into a Pandas dataframe
def read_shapefile(shp_path):
Read a shapefile into a Pandas dataframe with a 'coords' column holding
the geometry information. This uses the pyshp package
import shapefile
#read file, parse out the records and shapes
sf = shapefile.Reader(shp_path)
fields = [x[0] for x in sf.fields][1:]
records = sf.records()
shps = [s.points for s in sf.shapes()]
#write into a dataframe
df = pd.DataFrame(columns=fields, data=records)
df = df.assign(coords=shps)
return df

This comment has been minimized.

Copy link

@IceMerman IceMerman commented Jul 25, 2019

I get an error on python 3.6
Solution by rewriting
records = sf.records()
records =[list(i) for i in sf.records()]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment