Skip to main content

georgiacivicdata

CI Docs

georgiacivicdata brings Georgia's public data into Python. It is the Python client for the API run by Georgia Civic Data.

Georgia Civic Data gathers, organizes, and standardizes Georgia's public data, helping residents, parents, researchers, and professionals find answers in data that is already theirs. Every dataset has the same shape, with the same codes for counties, school districts, schools and demographic groups, so datasets from different agencies can be compared and joined.

The data covers education, Census, health, and immigration, from the whole state down to single schools and Census tracts. Each dataset comes with a data contract that documents its source, its columns, and the limits of the data.

With georgiacivicdata you can:

  • Find Georgia datasets, read their documentation, and get rows, all from Python.
  • Get pandas or Polars data frames with consistent column types: codes stay text so leading zeros survive, years are integers, and rates are proportions between 0 and 1.
  • See every school, district, and county code with its name, and filter by name instead of code.
  • Get school attendance zones and district boundaries as geopandas GeoDataFrames, ready to map.
  • Look up the schools zoned for any Georgia address.

There is no API key and nothing to configure. The package mirrors the R package georgiacivicdata: the same functions, without the gcd_ prefix.

Installation

Install the package from PyPI:

pip install georgiacivicdata

Extras add Polars and geopandas:

pip install "georgiacivicdata[polars,geo]"

Or install the development version from GitHub:

pip install "georgiacivicdata @ git+https://github.com/shanejorr/georgia-data-pypackage"

Example: graduation rates in Fulton County

How has the high school graduation rate in Fulton County Schools changed over time? The usual workflow:

import georgiacivicdata as gcd

# 1. Find a dataset by plain words
gcd.search("high school graduation", n=5)[["name", "title", "year_min", "year_max"]]

# 2. Learn what is in it
gcd.columns("graduation_rate_4_year_cohort")[["column", "type", "role", "unit"]]
gcd.describe("graduation_rate_4_year_cohort")  # source, years, notes

# 3. Get the rows: names turn into codes for you
grads = gcd.rows(
    "graduation_rate_4_year_cohort",
    district="Fulton County",
    detail="districts",
    demographic=["all", "black", "hispanic", "white"],
    year=range(2011, 2026),
)

# 4. Plot the overall rate
grads[grads["demographic"] == "all"].plot(x="year", y="graduation_rate")

# 5. Cite it
gcd.citation(grads)

Each place comes back with both its code and its name. A missing value usually means the figure was suppressed to protect small groups, not that it is zero. The API's advisories arrive as GCDAdvisory warnings: for example, never add the all total to its subgroups.

pandas or Polars

pandas is the default. Ask for Polars per call, or for the session:

gcd.rows("employment", year=2024, backend="polars")
gcd.set_option("backend", "polars")

Lookup tables

Everything known about a place beyond its name lives in lookup tables: a school's level, locale, grade span, address and coordinates, a tract's population. gcd.dimension() returns one:

gcd.dimension("schools", district="Fulton County", school_level="high", active=True)

School zones and places

zones = gcd.school_zones(district="Atlanta Public Schools", zone_level="high")
zones.plot(column="school_name")

# The Georgia State Capitol: its county, tract, district and zoned schools
gcd.locate(address="206 Washington St SW, Atlanta, GA 30334")

Addresses are geocoded on your computer with the U.S. Census geocoder, so only the point reaches the Georgia Civic Data API.

Documentation

Data license and citation

The data is published under the Creative Commons Attribution 4.0 International license (CC BY 4.0): credit Georgia Civic Data and the original source. gcd.citation() writes the citation for any result. The package code is MIT-licensed.

Metadata

Release files for georgiacivicdata 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for georgiacivicdata 0.1.0
File Size Uploaded Provenance Actions
georgiacivicdata-0.1.0.tar.gz 195.4 kB With provenance Details for georgiacivicdata-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for georgiacivicdata 0.1.0
File Interpreter ABI Platform Actions
georgiacivicdata-0.1.0-py3-none-any.whl Python 3 none any Details for georgiacivicdata-0.1.0-py3-none-any.whl

Total release size: 268.8 kB

Release files / georgiacivicdata-0.1.0.tar.gz

Download URL georgiacivicdata-0.1.0.tar.gz
Size 195.4 kB
Tags Source
SHA-256 checksum
How to use checksums
096beaa244350dae0bffd28da271e2a801e12c748b0f90378f1ac57ebf7bc2bb
BLAKE2b-256 checksum
How to use checksums
9f8bdc284dbec9945e2d03d69a63cbdd47b54685ce6481f9e7e972c26b02a776
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Release files / georgiacivicdata-0.1.0-py3-none-any.whl

Download URL georgiacivicdata-0.1.0-py3-none-any.whl
Size 73.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f0ce5f2d713da2325e8d5079cb3c6b76b9c95d5186625b2124f0fe71e2c6d11
BLAKE2b-256 checksum
How to use checksums
eae59d33aad60bd8dd9a50b596e580ee5615c5acb7edd20912ce888cb2cc7084
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

Security for georgiacivicdata 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for georgiacivicdata-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page