A package to fetch Bureau of Labor Statistics data using Streamlit
Project description
Table of Contents
- Description
- How to use streamlit-bls-connection
- Documentation
- Requirements
- License
- Contact
- Reporting Issues
- Acknowledgements
- How do I obtain an API Key?
- Use in Google Colab
- Streamlit Demo
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
- 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
- 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
- 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
- Run the Streamlit app using the following command:
streamlit run app.py
- 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:
-
Visit the BLS registration page: https://data.bls.gov/registrationEngine/.
-
Fill out the registration form with the necessary details.
-
Submit the registration form.
-
You should receive an email confirmation with your API key.
-
Copy your API key and use it as the value for the
api_key
parameter when using theconnection.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!
Streamlit Demo
If you want to see a showcase demo 🚀 in Streamlit, click the link below!
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
Built Distribution
File details
Details for the file streamlit_bls_connection-0.9.tar.gz
.
File metadata
- Download URL: streamlit_bls_connection-0.9.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 606f7f0eebd35e9c2b69c889534fc9c7f7df3685cbe358cf07957e1a102482ed |
|
MD5 | 44116fb1dcbe0170271c19507bb34e3f |
|
BLAKE2b-256 | eaab72cae1a14243b304ddbb859f326121fd80ff36ccdfa981acf1e788a8b49f |
File details
Details for the file streamlit_bls_connection-0.9-py3-none-any.whl
.
File metadata
- Download URL: streamlit_bls_connection-0.9-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c205dee1da4f91036f1223c0843dfc43d7e038c92e8fce628f2ca470a53caee3 |
|
MD5 | 22a77e9c86b9afa62790403f96e37ddd |
|
BLAKE2b-256 | 47ac2cf7e65bbd395e50ca0d8305f322ef5bc2174dd47f0098a335eafc87e8e6 |