Skip to main content

License: MIT Python: 3.8+ PyPI Version


Table of Contents

Description

The streamlit-bls-connection Python package allows you to easily interact with the U.S. Bureau of Labor Statistics (BLS) API and retrieve data as pandas dataframes and display them in Streamlit !

How to use streamlit-bls-connection

To run the Streamlit app locally on your machine, follow these steps:

Installation

  1. Install the streamlit-bls-connection package and its dependencies by running the following command in your terminal or command prompt:
pip install streamlit_bls_connection

Create .py file

  1. Create a new Python script with your favorite text editor (e.g., VSCode, Spyder, Notepad++), name it app.py and copy/paste below code and save changes.
import streamlit as st
from streamlit_bls_connection import BLSConnection

# Step 1: Setup connection to US Bureau of Labor Statistics
conn = st.experimental_connection('bls', type=BLSConnection)

# Step 2: Define input parameters
# Tip: one or multiple Series ID's* can be retrieved
# find Series ID's on www.bls.gov > DATA TOOLS
seriesids_list = ['APU000074714', 'APU000072610']
start_year_str = '2014' # start of date range
end_year_str = '2023'   # end of date range

# Step 3: Fetch data using the custom connection
dataframes_dict = connection.query(seriesids_list,
                                   start_year_str, 
                                   end_year_str,
                                   api_key = None)

# Step 4: Create dataframes
gas_df = dataframes_dict['APU000074714']
electricity_df = dataframes_dict['APU000072610']

# Step 5: Show Dataframes in Streamlit
st.dataframe(gas_df)
st.dataframe(electricity_df)

In terminal set file path of folder containing .py file

  1. In your terminal or command prompt, navigate to the directory where your Python script is located.
cd /path/to/your/python/script

Run Streamlit App

  1. Run the Streamlit app using the following command:
streamlit run app.py
  1. See your results in the browser of your Streamlit App!

Documentation

connection.query(seriesids: List[str], start_year: str, end_year: str, api_key: Optional[str] = None, catalog: bool = False, calculations: bool = False, annualaverage: bool = False, aspects: bool = False) -> Dict[str, pd.DataFrame]

The query method of the BLSConnection class allows you to fetch data from the BLS API. Before using this method, you need to create a BLSConnection object using the st.experimental_connection function and import the BLSConnection class.

Parameters:

  • seriesids (list of str):

    • Description: A list of strings representing the BLS time series data to fetch.
    • Example: ['APU000074714', 'APU000072610']
    • Note: The Series IDs are unique identifiers for specific datasets or statistical measures available from the Bureau of Labor Statistics. You can find Series IDs on the BLS website's DATA TOOLS section.
  • start_year (str):

    • Description: The start year for the data retrieval (inclusive), represented as a string.
    • Example: '2014'
    • Note: The data retrieval will begin from this year onwards.
  • end_year (str):

    • Description: The end year for the data retrieval (inclusive), represented as a string.
    • Example: '2023'
    • Note: The data retrieval will include data up to and including this year.
  • api_key (str, optional):

    • Description: The API key for accessing the BLS API. If provided, it enhances the data access capabilities, allowing for a larger number of requests.
    • Example: 'YOUR_API_KEY_HERE'
    • Note: Without an API key, you might be subject to limitations on the number of requests you can make. To obtain an API key, you can register on the BLS website.
  • catalog, calculations, annualaverage, aspects (bool, optional):

    • Description: Optional boolean parameters to include additional data fields for each time series.
    • Default: False
    • catalog: Whether to include catalog data for the series. Catalog data provides information about the series, such as the title and survey name. (Accessible only with an API key)
    • calculations: Whether to include calculated data for the series. Calculated data refers to additional statistics derived from the primary data series. (Accessible only with an API key)
    • annualaverage: Whether to include annual average data for the series. This field will be relevant if the series has data computed as annual averages. (Accessible only with an API key)
    • aspects: Whether to include additional aspects data for the series. Aspects data includes additional metadata or contextual information about the series. (Accessible only with an API key)
    • Note: Enabling any of these parameters with an API key will include the corresponding data fields in the returned DataFrames. This additional information can be useful for more detailed analysis and visualization of the data.

Returns: A dictionary with Series IDs as keys and DataFrames as values, containing the fetched BLS data for each series. Each DataFrame includes columns for 'date', 'value', '%_change_value', 'year', 'month', 'period'. If the API key is provided, 'seriesID', 'series_title', and 'survey_name' columns are also included in the DataFrames. Empty or all-None columns are excluded from the DataFrames.

Requirements

  • Python version 3.8 and above

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For questions, suggestions, or contributions, please visit my GitHub Profile.

Reporting Issues

If you encounter any problems 🔥, have questions ❓, or want to request a new feature 🆕, please feel free to open an issue on GitHub. I appreciate your feedback and will do our best to address any concerns promptly.

When reporting an issue, please provide as much detail as possible, including the version of the package, the Python version, and a clear description of the problem or feature request. This will help me better understand and resolve the issue quickly.

Thank you for your contributions to making this package better!

Acknowledgments

Special thanks 👏 to the Streamlit team for creating an amazing framework for building interactive web apps with Python.

How do I obtain an API Key?

Before using the streamlit-bls-connection package, you have the option to obtain an API key from the U.S. Bureau of Labor Statistics (BLS). The API key is required for enhanced data access capabilities, allowing for a larger number of requests.

To obtain your API key, follow these steps:

  1. Visit the BLS registration page: https://data.bls.gov/registrationEngine/.

  2. Fill out the registration form with the necessary details.

  3. Submit the registration form.

  4. You should receive an email confirmation with your API key.

  5. Copy your API key and use it as the value for the api_key parameter when using the connection.query() method.

Please note that the api_key parameter in the connection.query() method is optional. If you don't provide an API key, you might be subject to limitations on the number of requests you can make. However, you can still use the package without an API key, but with potential restrictions on the data you can access.

Having an API key will provide you with a more comprehensive and seamless experience when working with the BLS API.

Use in Google Colab

If you want to try it out in the cloud ☁️, to see the streamlit-bls-connection with a Streamlit app in action, you can click the link below!

Open In Colab

Streamlit Demo

If you want to see a showcase demo 🚀 in Streamlit, click the link below!

Streamlit App

Release files for streamlit-bls-connection 0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for streamlit-bls-connection 0.9
File Size Uploaded
streamlit_bls_connection-0.9.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for streamlit-bls-connection 0.9
File Interpreter ABI Platform
streamlit_bls_connection-0.9-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / streamlit_bls_connection-0.9.tar.gz

Download URL streamlit_bls_connection-0.9.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
606f7f0eebd35e9c2b69c889534fc9c7f7df3685cbe358cf07957e1a102482ed
BLAKE2b-256 checksum
How to use checksums
eaab72cae1a14243b304ddbb859f326121fd80ff36ccdfa981acf1e788a8b49f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / streamlit_bls_connection-0.9-py3-none-any.whl

Download URL streamlit_bls_connection-0.9-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c205dee1da4f91036f1223c0843dfc43d7e038c92e8fce628f2ca470a53caee3
BLAKE2b-256 checksum
How to use checksums
47ac2cf7e65bbd395e50ca0d8305f322ef5bc2174dd47f0098a335eafc87e8e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.9 This release

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

1 release file

0.4

1 release file

0.2

2 release files

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page