A GeoDataFrame is a tabular data structure that contains a column which contains a GeoSeries storing geometry.


GeoDataFrame([data, geometry, crs])

A GeoDataFrame object is a pandas.DataFrame that has a column with geometry.

Serialization / IO / conversion

GeoDataFrame.from_file(filename, **kwargs)

Alternate constructor to create a GeoDataFrame from a file.

GeoDataFrame.from_features(features[, crs, ...])

Alternate constructor to create GeoDataFrame from an iterable of features or a feature collection.

GeoDataFrame.from_postgis(sql, con[, ...])

Alternate constructor to create a GeoDataFrame from a sql query containing a geometry column in WKB representation.

GeoDataFrame.to_file(filename[, driver, ...])

Write the GeoDataFrame to a file.

GeoDataFrame.to_json([na, show_bbox, drop_id])

Returns a GeoJSON representation of the GeoDataFrame as a string.

GeoDataFrame.to_parquet(path[, index, ...])

Write a GeoDataFrame to the Parquet format.

GeoDataFrame.to_feather(path[, index, ...])

Write a GeoDataFrame to the Feather format.

GeoDataFrame.to_postgis(name, con[, schema, ...])

Upload GeoDataFrame into PostGIS database.


Encode all geometry columns in the GeoDataFrame to WKB.


Encode all geometry columns in the GeoDataFrame to WKT.

Projection handling

The Coordinate Reference System (CRS) represented as a pyproj.CRS object.

GeoDataFrame.set_crs([crs, epsg, inplace, ...])

Set the Coordinate Reference System (CRS) of the GeoDataFrame.

GeoDataFrame.to_crs([crs, epsg, inplace])

Transform geometries to a new coordinate reference system.


Returns the estimated UTM CRS based on the bounds of the dataset.

Active geometry handling

GeoDataFrame.rename_geometry(col[, inplace])

Renames the GeoDataFrame geometry column to the specified name.

GeoDataFrame.set_geometry(col[, drop, ...])

Set the GeoDataFrame geometry using either an existing column or the specified input.

Aggregating and exploding

GeoDataFrame.dissolve([by, aggfunc, ...])

Dissolve geometries within groupby into single observation.

GeoDataFrame.explode([column, ignore_index, ...])

Explode multi-part geometries into multiple single geometries.

Spatial joins

GeoDataFrame.sjoin(df, *args, **kwargs)

Spatial join of two GeoDataFrames.

GeoDataFrame.sjoin_nearest(right[, how, ...])

Spatial join of two GeoDataFrames based on the distance between their geometries.

Overlay operations

GeoDataFrame.clip(mask[, keep_geom_type])

Clip points, lines, or polygon geometries to the mask extent.

GeoDataFrame.overlay(right[, how, ...])

Perform spatial overlay between GeoDataFrames.


GeoDataFrame.explore(*args, **kwargs)

Interactive map based on folium/leaflet.jsInteractive map based on GeoPandas and folium/leaflet.js


alias of geopandas.plotting.GeoplotAccessor

Spatial index


Generate the spatial index


Check the existence of the spatial index without generating it.


Coordinate based indexer to select by intersection with bounding box.



Returns a GeoDataFrame as a python feature collection.

GeoDataFrame.iterfeatures([na, show_bbox, ...])

Returns an iterator that yields feature dictionaries that comply with __geo_interface__

All pandas DataFrame methods are also available, although they may not operate in a meaningful way on the geometry column. All methods listed in GeoSeries work directly on an active geometry column of GeoDataFrame.