Skip to content

stefur/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

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages