How to Use Pandas Profiling for Data Analysis (4 examples)

Updated: March 2, 2024 By: Guest Contributor Post a comment

Pandas Profiling is an invaluable tool for anyone looking to dive deeper into data analysis with Python. It generates descriptive statistics that are essential for understanding the basic structure of a dataset. This tutorial will cover how to use Pandas Profiling in various scenarios, ranging from basic to advanced examples. By the end, you’ll have a solid foundation to use this powerful library to accelerate your data analysis tasks.

Preparation

Before diving into the examples, ensure you have Pandas Profiling installed. If not, you can install it using pip:

pip install pandas-profiling

You can use your own CSV data or download one of the following datasets to practice:

Now, let’s go through four examples showing different ways you can leverage Pandas Profiling.

Example 1: Basic Overview

First, we’ll perform a basic analysis of a dataset. For simplicity, we’ll use the Iris dataset which is widely used for demonstrations.

import pandas as pd
from sklearn.datasets import load_iris
import pandas_profiling

iris = load_iris()
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
profile = df.profile_report(title='Iris Dataset Analysis')
profile.to_file("iris_analysis.html")

This generates an HTML report titled ‘Iris Dataset Analysis’ that provides an overview of the dataset including the distributions of features, missing values, and much more.

Example 2: Handling Large Datasets

With large datasets, generating a profile report can be time-consuming. You can use the minimal mode for a faster but less detailed overview.

df_large = pd.read_csv('your_large_dataset.csv')
profile = df_large.profile_report(minimal=True)
profile.to_file("large_dataset_analysis.html")

This approach reduces the generation time significantly by skipping correlations and other computationally intensive sections.

Example 3: Advanced Data Correlation

In this example, we explore advanced correlations and missing values analysis to identify patterns and relationships in our data.

df_complex = pd.read_csv('your_complex_dataset.csv')
profile = df_complex.profile_report(correlations={
    "pearson": {"calculate": True},
    "spearman": {"calculate": True},
    "kendall": {"calculate": True}
},
missing_diagrams={
    "heatmap": True,
    "dendrogram": True
})
profile.to_file("complex_dataset_analysis.html")

This detailed report helps in identifying both the linear and nonlinear relationships between variables, hence facilitating a more thorough analysis.

Example 4: Interactive Dashboard

Finally, we’ll use Pandas Profiling to create an interactive dashboard. This requires Jupyter Notebook or Jupyter Lab.

df = pd.read_csv('your_dataset.csv')
profile = df.profile_report(explorative=True, html={'style':{'full_width':True}})
profile.to_widgets()

This example showcases the interactive nature of Pandas Profiling in a Jupyter environment, making it a dynamic tool for exploratory data analysis.

Conclusion

Through these examples, we’ve explored the versatility and power of Pandas Profiling for data analysis. From quick assessments of large datasets to deep dives into complex relationships, Pandas Profiling equips you with the insights needed to make informed decisions. Its ease of use and broad capabilities make it an essential tool in the data analyst’s arsenal.