DataFrame.corr(method=‘pearson’, min_periods=1)
计算列与列之间的相关系数,返回相关系数矩阵
- method : {‘pearson’, ‘kendall’, ‘spearman’}
- pearson : standard correlation coefficient
- kendall : Kendall Tau correlation coefficient
- spearman : Spearman rank correlation
解释:相关系数的取值范围为[-1, 1],当接近1时,表示两者具有强烈的正相关性,比如‘s’和‘x’;当接近-1时,表示有强烈的的负相关性,比如‘s’和‘c’,而若值接近0,则表示相关性很低.
代码:
allDf = pd.DataFrame({'x':[0,1,2,4,7,10],'y':[0,3,2,4,5,7],'s':[0,1,2,3,4,5],'c':[5,4,3,2,1,0]},index = ['p1','p2','p3','p4','p5','p6'])# print(allDf)corr_matrix = allDf.corr()print(corr_matrix)
out:x y s cx 1.000000 0.941729 0.972598 -0.972598y 0.941729 1.000000 0.946256 -0.946256s 0.972598 0.946256 1.000000 -1.000000c -0.972598 -0.946256 -1.000000 1.000000
注意: 这里的相关性指的是线性相关性,下图是一些简单的例子:
数字为相关系数,数字下面为数据图形展示![pandas 统计函数[corr,scatter_matrix] - 图1](/uploads/projects/gaozhen-eft27@sallvz/9a90f7da88a6bc2fd7773f20d181b1d9.png)
接下来是房价分析的例子:
corr_matrix = housing.corr()corr_matrix["median_house_value"].sort_values(ascending=False)
out:median_house_value 1.000000median_income 0.687160total_rooms 0.135097housing_median_age 0.114110households 0.064506total_bedrooms 0.047689population -0.026920longitude -0.047432latitude -0.142724Name: median_house_value, dtype: float64
可以看出,房价与收入有比较强的相关性,而与纬度的相关性很低。
scatter_matrix
pandas.plotting.scatter_matrix(frame, alpha=0.5, figsize=None, ax=None, grid=False, diagonal=‘hist’, marker=’.’, density_kwds=None, hist_kwds=None, range_padding=0.05, **kwds)
画任意两列数值属性的散点图,最后画一个散点图的矩阵,对角线为分布直方图。
- figsize 图片大小
df = DataFrame(np.random.randn(1000, 4), columns=['A','B','C','D'])scatter_matrix(df, alpha=0.2)
![pandas 统计函数[corr,scatter_matrix] - 图2](/uploads/projects/gaozhen-eft27@sallvz/bf0ad1ee78c24fc30d3a33f8c1c7bcf0.png)
继续分析房价的例子,通过计算相关系数,只看几个与房价相关性较大的数据from pandas.tools.plotting import scatter_matrixattributes = ["median_house_value", "median_income", "total_rooms","housing_median_age"]scatter_matrix(housing[attributes], figsize=(12, 8))
![pandas 统计函数[corr,scatter_matrix] - 图3](/uploads/projects/gaozhen-eft27@sallvz/03179a1b428c1cc791cd351eaa27af70.png)
