Skip to content

Integrating with Pandas

Pandas, a widely-used data manipulation library in Python, offers functionalities that can transform raw data into structured data frames. This structured format provides methods to perform analyses, visualizations, and derive insights. This guide offers a step-by-step process to convert OpenAQ data into a Pandas DataFrame, enabling users to utilize both OpenAQ's rich dataset and Pandas' data processing capabilities.

The Code

How to use the OpenAQ Python client to get a measurements response and convert it into a Pandas DataFrame:

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Replace 161 with the ID of your desired location

Import Necessary Libraries

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Ensure you have the required libraries imported to fetch data and process it into a DataFrame.

Initialize Client and Fetch Data from OpenAQ

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Use a valid OpenAQ API key to initialize the client and fetch the desired air quality measurements.

Convert Measurements Data to a Dict

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Serialize the data into a Python Dict.

Using Pandas, Flatten Data and Create DataFrame with the json_normalize Method

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Normalize the fetched data and transform it into a Pandas DataFrame. Responses have a nested structure and need to be flattened to make the DataFrame.

Inspect the DataFrame

from openaq import OpenAQ
import pandas as pd

client = OpenAQ(api_key='replace-with-a-valid-openaq-api-key')
response = client.measurements.list(locations_id=161, date_from="2023-10-13", date_to="2023-10-14")
data_dict = response.dict()
df = pd.json_normalize(data_dict['results'])
client.close()
print(df.head())

Preview the top rows of the DataFrame to verify the data.


By following this guide, you can transform OpenAQ API data into a structured Pandas DataFrame for further analysis.