Skip to content

bernelius/pxwebpy

 
 

Repository files navigation

pxwebpy

GitHub Actions Workflow Status PyPI - Version PyPI - Python Version uv ruff
Client library for the PxWeb API to easily load data into a DataFrame.

Get started | Examples | Reference

Features

  • Automatic query batching to handle large queries to respect rate limits
  • Multithreading for faster data fetching on large queries
  • In-memory caching for quicker iterative use and exploration
  • Wildcard support in queries
  • BYODF (Bring Your Own DataFrame): native return formats for use with pandas or polars
  • Search for tables, browse and list tables, get metadata, and more

It has been tested with Statistics Sweden and Statistics Norway.

Note

pxwebpy only supports version 2.0 of the PxWeb API.

Quick start

from pxweb import PxApi
import polars as pl

# Prepare to get data from the Statistics Norway API by using the builtin URL
api = PxApi("ssb")

# Set the language to english
api.language = "en"

# Check the population per year in Norway during the 1990's
data = api.get_table_data(
    "06913",
    value_codes={"Region": "0", "ContentsCode": "Folkemengde", "Tid": "199*"},
)

# Turn it into a polars dataframe
df = pl.DataFrame(data)

# A quick look at the result
print(df)
shape: (10, 4)
┌─────────────────────┬──────────────────────┬──────┬─────────┐
│ region              ┆ contents             ┆ year ┆ value   │
│ ---                 ┆ ---                  ┆ ---  ┆ ---     │
│ str                 ┆ str                  ┆ str  ┆ i64     │
╞═════════════════════╪══════════════════════╪══════╪═════════╡
│ 0 The whole country ┆ Population 1 January ┆ 1990 ┆ 4233116 │
│ 0 The whole country ┆ Population 1 January ┆ 1991 ┆ 4249830 │
│ 0 The whole country ┆ Population 1 January ┆ 1992 ┆ 4273634 │
│ 0 The whole country ┆ Population 1 January ┆ 1993 ┆ 4299167 │
│ 0 The whole country ┆ Population 1 January ┆ 1994 ┆ 4324815 │
│ 0 The whole country ┆ Population 1 January ┆ 1995 ┆ 4348410 │
│ 0 The whole country ┆ Population 1 January ┆ 1996 ┆ 4369957 │
│ 0 The whole country ┆ Population 1 January ┆ 1997 ┆ 4392714 │
│ 0 The whole country ┆ Population 1 January ┆ 1998 ┆ 4417599 │
│ 0 The whole country ┆ Population 1 January ┆ 1999 ┆ 4445329 │
└─────────────────────┴──────────────────────┴──────┴─────────┘

About

Get data from the PxWeb API into a dataframe

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%