首页 > 解决方案 > 使用python查找变量之间的相关性

问题描述

我试图找出这个数据集中所有列的相关性,quality然后绘制葡萄酒质量的频率分布。

我正在按照以下方式进行操作,但是如何删除质量?

import pandas as pd
df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv', sep=';')
df.corr()

它返回此输出:

在此处输入图像描述

如何用 pandas 绘制葡萄酒质量的频率分布图?

我以前使用 R 进行相关性,它对我来说效果很好,但是在这个数据集上,我正在学习使用 pandas 和 python:

winecor = cor(wine[-12])
hist(wine$quality)

所以在 RI 中得到以下输出,我在 Python 中寻找相同的输出。

在此处输入图像描述

在此处输入图像描述

标签: pythonpython-3.xpandascorrelation

解决方案


1.直方图

# Import plotting library
import matplotlib.pyplot as plt

### Option 1 - histogram
plt.hist(df['quality'], bins=range(3, 10))
plt.show()

### Option 2 - bar plot (looks nicer)
# Get frequency per quality group
x = df.groupby('quality').size()
# Plot
plt.bar(x.index, x.values)
plt.show()

2. 相关矩阵

为了得到特征的相关矩阵,不包括quality

# Option 1 - very similar to R
df.iloc[:, :-1].corr()

# Option 2 - more Pythonic
df.drop('quality', axis=1).corr()

推荐阅读