使用 python 查找变量之间的相关性

Finding the correlation between variables using python

我试图找到 this dataset 中除 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()

它returns这个输出:

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

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

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

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

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()

您可以使用以下方法绘制直方图:

import matplotlib.pyplot as plt 

plt.hist(x=df['quality'], bins=30)
plt.show()

阅读 plt.hist() 的文档以更好地理解所有属性