基于pandas和seaborn进行数据可视化以及相关性分析 您所在的位置:网站首页 f1赛车里的drs是什么 基于pandas和seaborn进行数据可视化以及相关性分析

基于pandas和seaborn进行数据可视化以及相关性分析

#基于pandas和seaborn进行数据可视化以及相关性分析| 来源: 网络整理| 查看: 265

本博客学习pandas数据结构和seabon,以kaggle数据集为例,完成数据可视化以及相关性分析。数据总共12列,其中Survived列为target属性(y属性)。

加载原始数据 train_data = pd.read_csv('../datas/train.csv') # train set print train_data.head() 可视化相关性矩阵

计算各个属性的线性相关性,颜色越深相关性越大,并将与Survived相关性排序打印。

hitmapTemp = train_data[['Pclass','Age','SibSp','Parch','Fare','Survived']] hitmapData = hitmapTemp.corr() f, ax = plt.subplots(figsize=(12, 12)) sns.heatmap(hitmapData, vmax=1, square=True) plt.savefig('./figs/Correlation-Matrix.png') hitmap_dict = hitmapData['Survived'].to_dict() del hitmap_dict['Survived'] print("List the numerical features decendingly by their correlation with Sale Price:\n") for ele in sorted(hitmap_dict.items(), key = lambda x: -abs(x[1])):

Pclass : -0.338481035961 Fare : 0.257306522385 Parch : 0.0816294070835 Age : -0.0772210945722 SibSp : -0.0353224988857

具体分析Pclass特征 统计Pclass特征每个值的个数 print train_data['Pclass'].value_counts()

3 491 1 216 2 184 Name: Pclass, dtype: int64

统计Pclass属性与Survived属性之间关系 print train_data[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False)

Pclass Survived 0 1 0.629630 1 2 0.472826 2 3 0.242363

Pclass- Age 画盒图 plt.figure(figsize = (12, 6)) sns.boxplot(x = 'Pclass', y = 'Age', data = train_data) xt = plt.xticks(rotation=45) plt.show()

从图中我们可以看出级别越高,年纪也高

Age, Surviverd 画回归图 plt.figure(figsize = (12, 6)) sns.regplot(x = 'Age', y = 'Survived', data = train_data) plt.title('Age') plt.show()

从图片我们大概可以看出,Age与Survived成反比例关系,也就是年纪越大存活概率越小。

(Class,Sex) Vs Age矩阵条形分布图 # (Class,Sex) Vs Age 分布图 plt.figure(figsize = (12, 6)) grid = sns.FacetGrid(train_data, row='Pclass', col='Sex', size=2.2, aspect=1.6) grid.map(plt.hist, 'Age', bins=10) # 将Age分为10段的bins grid.add_legend() plt.show()

Class Vs Age 矩阵分布图(指行或者列) plt.figure(figsize = (12, 6)) grid = sns.FacetGrid(train_data, col='Pclass', size=2.2, aspect=1.6) grid.map(plt.hist, 'Age', bins=10) # 将Age分为10段的bins grid.add_legend() plt.show()

Class Vs Age Survived 矩阵散点图 plt.figure(figsize = (12, 6)) grid = sns.FacetGrid(train_data, col='Pclass', size=2.2, aspect=1.6) #确定几个图形的分布 grid.map(plt.scatter, 'Age','Survived') grid.add_legend() plt.show()

总结

pandas数据结构可以方便实现数据预处理,包括基本元素统计、均值、缺失值以及过滤,加上seaborn和matplotlib实现数据相关性分析以及特征可视化分析。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有