arrow_backBack to Blog
analytics3 min read

PythonwithPgeocodeandPandas.Postalcodestogeocoordinates

mailbox
Piotr

Piotr

Founder

In some projects, you may need to retrieve geo coordinates from the set of zip codes. pgeocode is a lightweight Python library for high-performance off-line querying of GPS coordinates, region name and municipality name from postal codes.


You can read this on Medium here.

Distances between postal codes and general distance queries are also supported. The database in use includes postal codes for 83 countries.

Check the source here.

Let me quickly show you how to use pgeocode in one of the real projects where we are tasked to retrieve geo coordinates from the subset of zip codes.

1. Let's begin with installing pgeocode.

shell
pip install pgeocode
or
conda install -c conda-forge pgeocode

2. Then, we import the key libraries for this little project.

python
  import pandas as pd
  import os
  import pgeocode

3. And we import our data to pandas DataFrame to df variable

python
  df = pd.read_excel('CH_Post.xlsx')
  df

4. We are then storing zip codes column to postal_codes variable

python
  postal_codes = df["PLZ"].values.astype('str').tolist()
  postal_codes

5. Subsequently, we initiate our pgeocode library, indicating we are seeking coordinates from the zip codes in Switzerland (providing ISO country code)

python
  nomi = pgeocode.Nominatim('ch')
  swiss_post = nomi.query_postal_code(postal_codes)
  swiss_post

6. The last step is to save our newly created dataset to .csv file.

python
 swiss_post.to_csv('CH_Post_with_geocoord.csv')

CONCLUSION

In the six easy steps, you retrieved geo coordinates from the set of zip codes using pandas and pgeocode.

vacalocalabs.com

Let's build something.

My agency delivers what big consultancies promise but rarely ship — working AI solutions, built by someone who understands both the business problem and the codebase. No decks. No discovery phases that go nowhere. Just production code.

Vaca Loca Labs — Boutique AI Agency