Skip to main content

A set of functions to calculate Prices Economics statistics.

Project description

What is it?

precon is a Python package that provides a suite of speedy, vectorised functions for implementing common methods in the production of Price Indices. It aims to provide the high-level building blocks for building statistical systems at National Statistical Institutes (NSIs) and other research institutions concerned with creating indices. It has been developed in-house at the Office for National Statistics (ONS) and aims to become the standard library for price index production. This can only be achieved with help from the community, so all contributions are welcome!

Installation

pip install precon

Use

import precon

API

Many functions in the precon package are designed to work with pandas DataFrames or Series that contain only one type of value, with any categorical or descriptive metadata contained within either the index or columns axis. Each component of a statistical operation or equation will usually be within it’s own DataFrame, i.e. prices in one Frame and weights in another. When dealing with time series data, the functions expect one axis to contain only the datetime index. Where a function accepts more than one input DataFrame, they will need to share the same index values so that pandas can match up the components that the programmer wants to process together. Processing values using this matrix format approach allows the functions to take advantage of powerful pandas/numpy vectorised methods.

It is not always necessary that the time series period frequencies match up if the values in one DataFrame do not change over the given period frequency in another DataFrame, as the functions will resample to the smaller period frequency and fill forward the values.

Check the docs for detailed guidance on each function and its parameters.

Features

  • Calculate fixed-base price indices using common index methods.

  • Combine or aggregate lower-level indices to create higher-level indices.

  • Chain fixed-base indices together for a continuous time series.

  • Re-reference indices to start from a different time period.

  • Calculate contributions to higher-level indices from each of the component indices.

  • Impute new base prices over a time series.

  • Uprating values by index movements.

  • Rounding weight values with adjustment to ensure the sum doesn’t change.

  • Stat compiler functions to quickly produce common sets of statistics.

Dependencies

Contributing to precon

See CONTRIBUTING.rst

Documentation

The full documentation is at http://precon.rtfd.org.

History

0.7.0 (2020-11-05)

Added new aggregation functionality:

  • Added the aggregate_level function to aggregate by a grouping.

  • Added the aggregate_up_hierarchy function to aggregate up a
    hierarchy given by MultiIndex levels.

0.6.2 (2020-10-30)

  • Bug fix: fixed an issue with the round_and_adjust function.

0.6.1 (2020-10-15)

  • Bug fix: fixed broken API definition.

  • Updated README to reflect new installation instructions.

0.6.0 (2020-10-14)

  • Added functionality for base_price_imputation function accepting
    the to_impute argument.
  • Aggregation function now works with mean or geometric mean depending
    on method argument.
  • The function calculate_index introduced offering various
    different index methods.
  • The index_calculator pipeline function offers an end-to-end
    pipeline for calculating indices with optional base price imputation.

0.5.1 (2020-06-09)

  • Bug fix in uprate function occuring in Q4 periods.

0.5.0 (2020-06-09)

  • Removed the prorate function.

0.4.0 (2020-06-05)

  • Introduced new function uprate and get_uprating_factors for price uprating.

0.3.5 (2020-05-22)

  • Bug fix

0.3.4 (2020-05-22)

  • Introduced improvements to round_and_adjust_weights to work with Series
    and on any axis of a DataFrame with the axis option.

0.3.3 (2020-05-15)

  • Rolled back set_first_period in chaining as it introduced a bug.

0.3.2 (2020-05-15)

  • Bug fix: included flip_axis function in helpers.

0.3.1 (2020-05-15)

  • Modified aggregation function to work with weight Series and different axes.

  • Changed set_jans in chaining to set_first_period_to_100 to work with
    quarterly series.

0.3.0 (2020-05-14)

  • Added round_and_adjust_weights function in rounding.py.

  • Add set_jans function and improved time series validation in chaining to
    make functions more robust.

0.2.0 (2020-03-31)

  • Added create_special_aggregation function.

0.1.1 (2020-03-31)

  • Fixed bug in importing functions in get_stats module.

0.1.0 (2020-01-27)

  • First installable version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

precon-0.7.0a2.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

precon-0.7.0a2-py2.py3-none-any.whl (31.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file precon-0.7.0a2.tar.gz.

File metadata

  • Download URL: precon-0.7.0a2.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for precon-0.7.0a2.tar.gz
Algorithm Hash digest
SHA256 beb3f9fabc17b9b24403fab5a9bd4380d07311ddfb83f9ebc3df8e8371ab5832
MD5 4a174bdc6a5693071189d6aa7d8857e3
BLAKE2b-256 65c4a56222f74a866bc3936cb8076992e7f554336cdf7a6a317083e4c7e1b7e5

See more details on using hashes here.

File details

Details for the file precon-0.7.0a2-py2.py3-none-any.whl.

File metadata

  • Download URL: precon-0.7.0a2-py2.py3-none-any.whl
  • Upload date:
  • Size: 31.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.9.0

File hashes

Hashes for precon-0.7.0a2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 901cd8ccf002d7f2698ab01647ebf901d52e8fa0d17ce14a764699796d389aad
MD5 d0e717d869a71bb970b2575061b066de
BLAKE2b-256 2e7daf94fbe7d42d7ff1bd4c01aecbee12a7d7d3f577ce219ce5f592fadc5c31

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page