GeoDataFrame.to_file(filename, driver=None, schema=None, index=None, **kwargs)

Write the GeoDataFrame to a file.

By default, an ESRI shapefile is written, but any OGR data source supported by Fiona can be written. A dictionary of supported OGR providers is available via:

>>> import fiona
>>> fiona.supported_drivers  

File path or file handle to write to.

driverstring, default None

The OGR format driver used to write the vector file. If not specified, it attempts to infer it from the file extension. If no extension is specified, it saves ESRI Shapefile to a folder.

schemadict, default: None

If specified, the schema dictionary is passed to Fiona to better control how the file is written.

indexbool, default None

If True, write index into one or more columns (for MultiIndex). Default None writes the index into one or more columns only if the index is named, is a MultiIndex, or has a non-integer data type. If False, no index is written.

New in version 0.7: Previously the index was not written.

See also


write GeoDataFrame to PostGIS database


write GeoDataFrame to parquet


write GeoDataFrame to feather


The extra keyword arguments **kwargs are passed to and can be used to write to multi-layer data, store data within archives (zip files), etc.

The format drivers will attempt to detect the encoding of your data, but may fail. In this case, the proper encoding can be specified explicitly by using the encoding keyword parameter, e.g. encoding='utf-8'.


>>> gdf.to_file('dataframe.shp')  
>>> gdf.to_file('dataframe.gpkg', driver='GPKG', layer='name')  
>>> gdf.to_file('dataframe.geojson', driver='GeoJSON')  

With selected drivers you can also append to a file with mode=”a”:

>>> gdf.to_file('dataframe.shp', mode="a")