unstale

pypi / geopandas

geopandas

What changed in geopandas 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-30.

9 breaking2 security1 deprecations13 new APIs and options6 behavior and defaults13 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

geopandas 144 changes

Breaking changes 9

  • The internal figure representation and composition of collections have changed, which may break code relying on collection composition.

    1.2.0release notes

  • The minimum required NumPy version is now 2.0.

    1.2.0release notes

  • The minimum required pandas version is now 2.2.

    1.2.0release notes

  • The minimum required pyproj version is now 3.7.

    1.2.0release notes

  • Python 3.11 or greater is now required.

    1.2.0release notes

  • The expired seed keyword in sample_points is removed; use rng instead.

    1.2.0release notes

  • The minimum required Shapely version is now 2.1.

    1.2.0release notes

  • The expired use_pygeos option, which had no functionality, is no longer available.

    1.2.0release notes

  • Points generated by sample_points are no longer sorted along the x-axis.

    1.1.4release notes

Security 2

  • Further hardens to_postgis against SQL injection.

    1.1.4release notes

  • geopandas SQL Injection Vulnerability in to_postgis() Allows Information Disclosure

    1.1.2security advisory

Deprecations 1

  • The resolution keyword is deprecated in favor of quad_segs to align with Shapely's convention.

    1.2.0release notes

New APIs and options 13

  • Adds a grid_size parameter.

    1.2.0release notes

  • Generates square or hexagonal grids covering the input geometry.

    1.2.0release notes

  • Exposes information about file layers, including layer metadata, as an alias for pyogrio.read_info.

    1.2.0release notes

  • Generates square or hexagonal grids covering the input geometry.

    1.2.0release notes

  • Adds a grid_size parameter.

    1.2.0release notes

  • Axes are labeled using CRS unit information, and this behavior can be controlled with add_labels.

    1.2.0release notes

  • When plotting continuous variables with a classification scheme, setting colorbar=True within legend_kwds produces a colorbar instead of a categorical legend.

    1.2.0release notes

  • The value "greedy" enables greedy topological coloring so adjacent polygons do not share a color; it requires mapclassify and libpysal.

    1.2.0release notes

  • Static plots can include a basemap through contextily.add_basemap; the contextily package is required.

    1.2.0release notes

  • With the pyogrio engine, fid_as_index=True accesses the feature ID as the index.

    1.2.0release notes

  • Adds a grid_size parameter.

    1.2.0release notes

  • Adds a grid_size parameter.

    1.2.0release notes

  • Random states in pointpats methods can now be fixed with rng.

    1.1.3release notes

Behavior and default changes 6

  • Writes attrs to Parquet files.

    1.2.0release notes

  • Legends are created automatically by matplotlib, allowing a single legend for a layered map with ax.legend().

    1.2.0release notes

  • Static plotting has been re-implemented with enhancements to categorical styling, legends, colorbars, classification, and basemaps.

    1.2.0release notes

  • Supports reading the upcoming GeoParquet 2.0 specification.

    1.2.0release notes

  • Reads attrs from Parquet files and supports direct reading from HTTP/HTTPS protocols.

    1.2.0release notes

  • Improved compatibility with pandas 3.0 Copy-on-Write by using deferred copies where possible.

    1.1.3release notes

Fixes and other changes 13

  • Passing multiple non-geometry columns now falls back to pandas multi-column explode instead of raising a cryptic error.

    1.2.0release notes

  • An empty feature list with a CRS now returns an empty GeoDataFrame with a geometry column instead of raising ValueError.

    1.2.0release notes

  • Zero-area polygons no longer cause an endless loop; they now return an empty MultiPoint.

    1.2.0release notes

  • Index levels produced by explode and get_coordinates with index_parts=True are int64 rather than int32 on 32-bit platforms.

    1.2.0release notes

  • read_parquet no longer ignores partitioning when auto-detecting columns, so partitioning=None no longer raises.

    1.2.0release notes

  • vmin and vmax are now supported when scheme is defined instead of being ignored.

    1.2.0release notes

  • vmin and vmax are now supported when scheme is defined instead of being ignored.

    1.2.0release notes

  • Custom legend_kwds labels are no longer ignored for categorical and boolean columns.

    1.1.4release notes

  • Handles keep_geom_type more gracefully when the input is empty.

    1.1.4release notes

  • Correctly handles missing values with pandas 3 when the new str dtype is used.

    1.1.3release notes

  • Accepts list-like size when generating points using pointpaterns.

    1.1.3release notes

  • Assigning column values to a new row index now preserves the column CRS and geometry dtype on pandas 3.1.

    1.1.3release notes

  • Correctly handles missing values with pandas 3 when the new str dtype is used.

    1.1.3release notes