Chapter 5 Exploratory Data Analysis and Visualization
- EDA and visualization libraries in Python
- Performing EDA with Seaborn and pandas
- Using EDA Python packages
- Using visualization best practices
- Making plots with Plotly
Performing EDA with Seaborn and pandas
Making boxplots and letter-value plots
python
import matplotlib.pyplot as plt
df['Minutes'].plot.box()
plt.show()
f = plt.figure(figsize=(5.5, 5.5)) # this changes the size of the image -- more on this is chapter 5
f.patch.set_facecolor('w') # sets background color behind axis labels
df['Minutes'].plot.box()
plt.tight_layout() # auto-adjust margins
Making histograms and violin plots
python
sns.histplot(x=df['Minutes'], kde=True)
Let's look at a few groups of data at once with a violin plot. Let's first select the top five genres by number of songs and create a separate DataFrame with only this data:
python
top_5_genres = df['Genre'].value_counts().index[:5]
top_5_data = data=df[df['Genre'].isin(top_5_genres)]
Making scatter plots with Matplotlib and Seaborn
python
plt.scatter(df['Minutes'], df['MB'])
Examining correlations and making correlograms
python
sns.pairplot(data=df)
Making missing value plots
python
import missingno as msno
msno.matrix(df)
This shows a matrix of non-missing values in gray and missing values in white. Each row is a line across each column. From this, we see that the Composer column has several missing values, but none of the other columns are missing any values. The spark line on the right side shows the total missing values across all columns for each row and shows the maximum and minimum number of complete values for the rows. In our case, 7 means the minimum number of non-missing values in a row is 7, and the maximum number of non-missing values in a row is 8.
Using EDA Python packages
python
from pandas_profiling import ProfileReport
report = ProfileReport(df)
report