1.数据可视化与探索图数据可视化是指将数据以图形或表格的形式呈现。图表可以清楚地呈现数据的性质以及数据或属性之间的关系,易于人们理解。通过ExploratoryGraph,用户可以了解数据的特征,发现数据的趋势,降低理解数据的门槛。2.常用图表示例本章主要使用Pandas的方法来画图,没有使用Matplotlib模块。事实上,Pandas已经将Matplotlib的绘图方法集成到了DataFrame中,因此在实际应用中,用户无需直接引用Matplotlib即可完成绘图工作。1、折线图折线图(折线图)是最基本的图表,可以用来呈现不同列中连续数据之间的关系。plot.line()方法用于绘制折线图,??可以设置颜色、形状等参数。在使用上,拆解图的绘制方法完全继承了Matplotlib的用法,所以程序最后还必须调用plt.show()来生成拆解图,如图8.4所示。df_iris[['萼片长度(cm)']].plot.line()plt.show()ax=df[['萼片长度(cm)']].plot.line(color='green',title="Demo",style='--')ax.set(xlabel="index",ylabel="length")plt.show()2.散点图(ScatterChart)用于查看不同字段数据之间的分散关系。散点图使用df.plot.scatter()绘制,如图8.5所示。df=df_irisdf.plot.scatter(x='萼片长度(cm)',y='萼片宽度(cm)')frommatplotlibimportcmcmap=cm.get_cmap('Spectral')df.plot.scatter(x='萼片长(cm)',y='萼片宽(cm)',s=df[['花瓣长(cm)']]*20,c=df['target'],cmap=cmap,leit=t'花瓣长度不同的圆圈大小(厘米)')3.直方图,直方图图表(HistogramChart)通常用在同一个字段中,显示连续数据的分布情况,另一种类似于直方图的图形是条形图(BarChart),用于查看同一个字段,如图在图8.6中。df[['萼片长度(cm)','萼片宽度(cm)','花瓣长度(cm)','花瓣宽度(cm)']].plot.hist()2df.target.value_counts().plot.bar()4.PieChart、BoxChart饼图(PieChart)可以用来查看同一字段中各个类别的占比,而箱形图(BoxChart)则用来查看相同的Columns或者比较数据在不同列中的分布差异,如图8.7所示。df.target.value_counts().plot.pie(legend=True)df.boxplot(column=['target'],figsize=(10,5))数据探索实践分享本节使用两个真实数据集演示几个在实践中探索数据的方法。1.2013年美国社区调查在美国社区调查(AmericanCommunitySurvey)中,每年约有350万个家庭被询问有关他们是谁以及他们如何生活的详细问题。该调查涵盖了许多主题,包括血统、教育、工作、交通、互联网使用和居住地。数据名称:2013年美国社区调查。首先观察数据的外观和特征,以及每个字段的含义、类型和范围。#读取数据df=pd.read_csv("./ss13husa.csv")#字段类型数df.shape#(756065,231)#字段取值范围df.describe()首先将两个ss13pusa.csv字符串放在一起,这样data一共包含30万条数据,3列:SCHL(教育,SchoolLevel),PINCP(收入,收入)和ESR(工作状态,WorkStatus)。pusa=pd.read_csv("ss13pusa.csv")pusb=pd.read_csv("ss13pusb.csv")#连接两个数据col=['SCHL','PINCP','ESR']df['ac_survey']=pd.concat([pusa[col],pusb[col],axis=0)将数据按照学历分组,观察不同学历的比例,然后计算他们的平均收入。group=df['ac_survey'].groupby(by=['SCHL'])print('教育分布:'+group.size())group=ac_survey.groupby(by=['SCHL'])print('Averageincome:'+group.mean())2.BostonHouseDatasetBostonHousePriceDataset包含了波士顿地区的住房信息,包括506个数据样本和13个特征维度。数据名称:波士顿房价数据集。首先观察数据的外观和特征,以及每个字段的含义、类型和范围。房价分布(MEDV)可以绘制为直方图,如图8.8所示。df=pd.read_csv("./housing.data")#字段类型数df.shape#(506,14)#字段取值范围df.describe()importmatplotlib.pyplotaspltdf[['MEDV']].plot.hist()plt.show()注:图中英文对应作者在代码或数据中指定的名称。在实践中,读者可以将它们替换为他们需要的文本。接下来你需要知道的是哪些维度与“房价”有显着关系。先用散点图观察,如图8.9。#绘制散点图df.plot.scatter(x='MEDV',y='RM').plt.show()最后计算相关系数并使用热图进行可视化呈现,如图8.10所示。#计算皮尔逊相关系数corr=df.corr()#绘制热图i??mportseabornassnscorr=df.corr()sns.heatmap(corr)plt.show()颜色为红色,表示正相关;颜色为蓝色,表示负相关;颜色为白色,表示没有关系。RM与房价的相关性偏向红色,表明正相关;LSTAT、PTRATIO与房价的相关性偏向深蓝色,表明负相关;CRIM、RAD、AGE与房价的相关性偏向白色,说明没有关系。
