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

来源:互联网 发布:知乎 小电影 编辑:程序博客网 时间:2024/05/22 00:13

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

加载原始数据

train_data = pd.read_csv('../datas/train.csv')  # train setprint 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段的binsgrid.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段的binsgrid.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实现数据相关性分析以及特征可视化分析。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 不知道怀孕喝酒了怎么办 不知道怀孕了喝酒了怎么办 怀孕5天喝酒了怎么办 打孩子耳光后脸肿了怎么办 老师说上课不专心怎么办 孩子不专心好动马虎怎么办 学生上课不认真听讲怎么办 一年级孩子上课不注意听讲怎么办 一年级孩子上课说话不听课怎么办 一年级孩子上课不听课怎么办 小学一年级学生上课不专心怎么办? 小孩听课注意力不集中怎么办 小孩子上课精神不集中怎么办 孩子说我不画了怎么办 幼儿园小朋友上课不专心怎么办 孩子写作业不专心怎么办 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办 我又打孩子了怎么办 打排卵针不排卵怎么办 总是控制不住打骂孩子怎么办 叛逆期的孩子打骂妈妈怎么办 孩子屁股打青了怎么办 父亲把孩子屁股打流血怎么办 孩子屁股长了湿疹怎么办 宝宝发脾气摔东西躺地上怎么办 生气拿棍子打了孩子怎么办 小宝宝被蚊虫咬了怎么办