本文运用常见的Python包对红酒的通用数据集进行分析和可视化展示。这个数据集有1599个样本,12个变量,其中11个变量是红酒的理化性质,1个变量是红酒的品质评分(10分制)。首先我们需要调用要使用的包,也可以做一些基本绘图设置,然后就可以读取数据进行数据分析。
# 导入需要用到的包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import pandas_profiling
# 在notebook中画图
%matplotlib inline
# 精度设定
pd.set_option('precision',3)
# 颜色设定
color= sns.color_palette()
# 数据导入
data=pd.read_csv("E:awinequality-red.csv",sep=';')
data.head(5)
结果输出如下:
fixed acidity volatile acidity citric acid ... sulphates alcohol quality
0 7.4 0.70 0.00 ... 0.56 9.4 5
1 7.8 0.88 0.00 ... 0.68 9.8 5
2 7.8 0.76 0.04 ... 0.65 9.8 5
3 11.2 0.28 0.56 ... 0.58 9.8 6
4 7.4 0.70 0.00 ... 0.56 9.4 5
[5 rows x 12 columns]
一、使用pandas-profiling进行探索性数据分析
Pandas-profiling是数据质量探索的主要工具包,主要用来研究各个单变量数据的分布以及变量之间的相关关系分析。它首先对数据简单进行了一个统计性描述,会提示每个变量的缺失值情况,然后其中rejected表示由于和其他的变量之间的相关性很高,可以剔除该变量。此外还会告诉每个变量的分布。
# 数据探索html报告
profile = pandas_profiling.ProfileReport(data)
profile.to_file("winequality-red_output_file.html")
从报告结果来看,数据没有缺失值,12个变量均是数值型变量。同时每个变量均有详细的描述性统计和分布可视化展示,红酒品质变量(quality)数据集中范围是3到8,绝大部分的红酒品质是5或6,其他变量分布这里不进行详细的描述。从相关性分析来看,红酒的品质(quality)与酒精(alcohol)、挥发性酸(volatile acidity)相关性最高。
我们也可以做个性化的单变量、双变量、多变量分析来深入探索这个数据,具体见下面三小节。
二、单变量分析
1、样本概况及简单描述性统计
首先通过.info()查看数据集变量的数据类型及样本概况,通过.describe()进行简单的描述性统计。
# 数据概览
data.info()
结果输出如下:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1599 entries, 0 to 1598
Data columns (total 12 columns):
fixed acidity 1599 non-null float64
volatile acidity 1599 non-null float64
citric acid 1599 non-null float64
residual sugar 1599 non-null float64
chlorides 1599 non-null float64
free sulfur dioxide 1599 non-null float64
total sulfur dioxide 1599 non-null float64
density 1599 non-null float64
pH 1599 non-null float64
sulphates 1599 non-null float64
alcohol 1599 non-null float64
quality 1599 non-null int64
dtypes: float