georgiacivicdata
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
- Package website: https://georgiacivicdata.org/py/
- Every page also has a Markdown version for LLM agents: add
.mdto its address, or start at https://georgiacivicdata.org/py/llms.txt. - API documentation: https://georgiacivicdata.org/docs
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.