对diamonds.csv数据集的数据探索性分析及其实现(eda)(代码片段)

像雨像雾像风 像雨像雾像风     2022-11-30     295

关键词:

一、数据描述

1、数据描述

(1)本次使用的是砖石(diamonds)数据集,这个数据集包含近53940的价格和其他属性。根据该数据集,我们可以通过钻石的切割,颜色,净度,价格和其他属性分析钻石。

(2)该数据集中共有10个字段,下面我介绍一些这些字段:

carat:砖石的重量(克拉);

cut:钻石的切工,由低到高依次为Fair, Good, Very Good, Premium, Ideal;

color:砖石的颜色,从最低的J到最高的D;

clarity:钻石的纯净度,从低到高依次为I1, SI1, SI2, VS1, VS2, VVS1, VVS2, IF;

depth:砖石的总深度;

table:钻石的桌面比例;

price:砖石的价格;

x:砖石的长度;

y:砖石的宽度;

z:砖石的深度

2、数据导入

import pandas as pd
df = pd.read_csv(r\'C:\\Users\\Administrator\\Desktop\\diamonds.csv\')
df

 

3、查看数据信息

①查看数据集信息:

df.describe()

②查看数据类型:

df.info()

由此图可知,diamonds.csv数据集中的十个字段,其中有六个float类型,三个object类型,一个int型。

二、问题提出

1、砖石的价格的分布是什么样的?价格与克拉或颜色之间有什么关系?

2、砖石的纯净度与颜色之间有什么联系?纯净度分布是怎样的?

三、数据清洗和预处理

1、重复值

使用drop_duplicates()方法删除重复行:

df.drop_duplicates()

 

由此图可知,删除重复项之后该数据集有53794行数据,删除了146行重复的数据。

 2、缺失值

使用isnull()方法查看缺失值:

df.isnull()

df.isnull().any()

有上图可知,该数据集中没有缺失值。

四、各变量相关性数据分析与可视化

1、绘制每个数据的图表信息

①柱状图:

cols=df.columns #取得列缩影
index=df.index[1:]#去除count行
plt.figure(figsize=(30,30))#控制画布大小
for i in range(len(cols) ):
    a=plt.subplot(10,6,i+1)
    a.set_title(cols[i])
    for j in range(len(index)):
        plt.bar(index[j],df.loc[index[j],cols[i]])#对每个特征绘制describe柱状图
plt.show()

②扇形图:

import matplotlib.pyplot as plt
plt.rcParams[\'font.sans-serif\'] = [\'SimHei\']
plt.pie(x=df[\'clarity\'].value_counts(),labels=df[\'clarity\'].value_counts().index,autopct=\'%.1f%%\',)
plt.title(u\'clarity\')
plt. show()

import matplotlib.pyplot as plt
plt.rcParams[\'font.sans-serif\'] = [\'SimHei\']
plt.pie(x=df[\'color\'].value_counts(),labels=df[\'color\'].value_counts().index,autopct=\'%.1f%%\',)
plt.title(u\'color\')
plt. show()

import matplotlib.pyplot as plt
plt.rcParams[\'font.sans-serif\'] = [\'SimHei\']
plt.pie(x=df[\'cut\'].value_counts(),labels=df[\'cut\'].value_counts().index,autopct=\'%.1f%%\',)
plt.title(u\'cut\')
plt. show()

  

 

由扇形图可知:clarity主要分布在VS2、SI1、SI2、VS1,其中的I1、IF占比很少;而color中G的占比最大,J最小;cut中切割理想(Ideal)的占比最大,失败的很少。

2、通过柱状图观看砖石价格的分布

#1
import seaborn as sns %matplotlib inline sns.distplot(df["price"],bins=300,kde=False,color="red") #2 sns.distplot(df[\'price\'],kde=False)

 

由上面两个图可知,钻石价格基本服从幂律分布。

3、通过柱形图对砖石颜色的统计

sns.countplot(diamond.color)

4、通过dtale进行可视化

 

 通过左上角的三角形打开功能菜单(通过language可将语言切换为中文),选择描述得到下图:

 

 由此图可知,我们可以通过描述功能得到该数据集的各个数据信息(数据的分布及频率,还有最大值、中值、最小值、总和等。)。

以carat为例:

 

5、砖石的其他数据与价格之间的关系

①钻石价格的分布情况

p1 <- ggplot(diamonds,aes(x = price)) + 
        #以价格为x轴绘制核密度图
        geom_density(lwd = 1) +
        #添加标题 
        ggtitle("Density of Price") 

p2 <- ggplot(diamonds,aes(x = price)) + 
        #以价格为x轴,按照切工分组绘制核密度图
        geom_density(lwd = 1,aes(color = cut)) + 
        #调整图例位置
        theme(legend.position = c(0.85,0.7)) +
        ggtitle("Price,by CUT")

p3 <- ggplot(diamonds,aes(x = price)) + 
        geom_density(lwd = 1,aes(color = color)) + 
        theme(legend.position = c(0.91,0.6)) + 
        ggtitle("Price,by Color")

p4 <- ggplot(diamonds,aes(x = price)) + 
        geom_density(lwd = 1,aes(color = clarity)) + 
        theme(legend.position = c(0.9,0.56)) + 
        ggtitle("Price,by Clarity")

第一副图可以看出钻石的价格呈正偏峰分布,多数的值都集中在较小的一端。
第二幅图我们将价格按颜色分组,颜色好(D)的钻石的价格多集中在价格较低的区域,而颜色差(J)的钻石价格的分布更平均一些。
第三幅图我们将价格按切工分组,各种切工的钻石分布情况差不多都多集中于价格低的区域。
第四幅图我们将价格按透明度分组,发现和第二幅图相似,透明度较好(IF)的钻石多集中在低价格区域,而透明度较差(l1)的钻石的价格分布更平均一些。

②价格与克拉和纯净度之间的关系

 由散点图可知,砖石的纯净度越高,重量越重,价格越高。

③价格与克拉之间的关系

 由此图我们看到随着钻石重量的增加钻石的价格也呈上升的趋势,且在某些重量上相对集中。我们可以看到钻石的重量越高其价格的离散程度越大,而在重量较低时价格的离散程度相对较小。故我认为钻石的重量越高价格越高,钻石的重量越高其价格受其他因素的影响越大。

④价格与切工(cut)之间的关系

切工与价格的关系如何? 我们可以首先将钻石按照切工分组,然后计算每一个切工等级的钻石的平均价格等。 在jupyter中,我们可以借助DataFrame的groupby函数进行分组,然后使用mean函数分组聚集计算。

diamond.groupby("cut")["price"].mean()


但从上图来看,我们发现价格和切工并不存在很强的直接相关性。我们也可以借助seaborn的盒图直观地观察

由此图我们可以发现砖石的切工越好,其价格相对来说就越高。

⑤价格与纯净度之间的关系

 

 

 通过上面的线型图我们发现,纯净度并不能直接觉定一个砖石的价格,但间接影响了砖石的价格。

⑥价格与纯净度、颜色之间的关系

 

 

 由扇形图和柱状图可知,纯净度越高,颜色越稀有,价格越高

⑦价格和克拉,切工之间的关系

上面两个图表我们在看的时候太密集,不方便观察,于是我将上面第二关图表进行了拆分,如下图所示:

 

 由这些图表可知,对于任何颜色的砖石来说,重量越重,价格越高。

⑧价格与其他数据之间的相关性

 

由上图可知价格与depth之间的相关性是负相关,故对价格的影响是价格越高,depth越低。而其他数据都对价格由影响,只是影响力度不同,其中carat的影响力最大。

 6、砖石数据集中所有数据之间的相关性

五、主要结论

克拉、切割、颜色、纯度对价格的影响是呈现线性正相关关系,同等条件下,克拉越高价格越高。

 

钻石的重量越高价格越高,钻石的重量越高其价格受其他因素的影响越大。

 

颜色、切工、透明度越好的钻石价格均值越低。

价格随克拉数上升而上升,有较多的离群点。

 

datawhale7月组队学习task1数据加载及探索性数据分析(代码片段)

Datawhale7月task1数据加载及探索性数据分析​有幸了解到了Datawhale这样一个开源组织,欣然报名了2021年7月的组队学习的动手学数据分析系列课程​本系列目标:完成kaggle上泰坦尼克的任务,实战数据分析全流程​usemach... 查看详情

r语言数据挖掘实战系列

R语言数据挖掘实战系列(3)三、数据探索        通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据质量分析  &... 查看详情

arcgis网络分析[4]网络数据集深入浅出之连通性网络数据集的属性及转弯要素

前面介绍完了如何创建网络数据集、如何使用网络分析功能,当然还有的读者会迷惑于一些更深层次的问题,比如网络数据集的连通性问题等。因为不可能面面俱到,我只能挑重点来阐述,我觉得网络数据集的连通性、属性和转... 查看详情

探索性数据分析:自然断点法算法原理及python实现

虽然这是2020年第一篇,不过根据我兔的习惯,俺们通常是过农历大年才算过年,所以这篇依然算是旧历年的文章,不算开篇制作。在做专题制图的时候,需要把专题数据分成若干类别,分类的标准当然仁... 查看详情

r语言重要数据集分析研究——需要整理分析阐明理念

...到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析。统计量,即统计学里面关注的数据集的几个指标,常用的如下:最小值,最大值,四分位数,均值,中位数,众数,方差,标准差,极差,偏度,峰度先... 查看详情

r探索新数据分析(exploratorydataanalysis,eda)

R探索新数据分析(ExploratoryDataAnalysis,EDA)目录R探索新数据分析(ExploratoryDataAnalysis,EDA)str方法进行数据概览及类型查看 查看详情

数据探索

一、查看数据首先,我们查看iris数据集的大小和结构,其维度和名称分别使用函数dim()和names()获取。函数str()和attributes()返回数据的结构和属性二、单变量分析>head(iris)Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies15.13.51.40.2setosa24.9... 查看详情

机器学习之数据探索——数据质量分析

数据探索是对样本数据进行解释性的分析工作,它是数据挖掘和机器学习较为前期的部分,更偏重于研究数据的本质、描述数据的形态特征并解释数据的相关性。换句话说,透过数据探索,我们应该可以回答如下问题:样本数据... 查看详情

python描述性统计分析(descriptivestatistics)+探索性数据分析eda

python描述性统计分析(descriptivestatistics)+探索性数据分析EDA什么是描述统计分析(DescriptiveAnalysis)概念:使用几个关键数据来描述整体的情况描述性数据分析属于比较初级的数据分析,常见的分析方法包括对比分析法、平均分... 查看详情

--数据分析的多变量分析

数据探索性分析(EDA)——多(双)变量分析0引言上一篇文章介绍了数据分析中的单变量分析,但是我们在实际场景中,遇到的数据大多数是具有多特征、多变量的,因此除了对单个变量进行分布、缺失等情况的探索,还需要对变量... 查看详情

基于pytorch平台实现对mnist数据集的分类分析(前馈神经网络softmax)基础版(代码片段)

基于pytorch平台实现对MNIST数据集的分类分析(前馈神经网络、softmax)基础版文章目录基于pytorch平台实现对MNIST数据集的分类分析(前馈神经网络、softmax)基础版前言一、基于“前馈神经网络”模型,分类分析... 查看详情

数据探索之数据质量分析

数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般指的是不符合要求,以及不能直接进行相应分析的数据。数据的质量分析侧重于脏数据的发现,而数据清洗则是对这些脏数据的修正或者丢弃。一般情况下... 查看详情

大数据集的市场桶分析

】大数据集的市场桶分析【英文标题】:Marketbucketanalysisonlargedataset【发布时间】:2018-06-0817:08:36【问题描述】:我正在对包含2列(OrderID和Product)的大型数据集创建市场桶分析。集合中有超过一百万行,使用apriori包,我能够使... 查看详情

数据治理架构探索

对现有数据体系整理优化的探索。目前现有体系为生产数据库为ORACLE,分析平台数据库为基于HADOOP平台开发,两个平台并行运行。基于业务要求,生产ORACLE按一定期限会删除数据,而分析平台则保存历史所有但是会做了脱敏处理... 查看详情

eda与特征工程数据探索与特征工程综合指南

文章目录前言一、探索性数据分析(EDA)1.变量识别2.单变量分析3.双变量分析二、特征工程1.缺失值处理1.为什么需要处理缺失值2.为什么数据存在缺失值3.处理缺失值的方法有哪些?2.异常值检测与处理技术1.什么是异常值?... 查看详情

--数据分析的多变量分析(代码片段)

数据探索性分析(EDA)——多(双)变量分析0引言上一篇文章震惊!Python单变量分析竟然如此简单?介绍了数据分析中的单变量分析,但是我们在实际场景中,遇到的数据大多数是具有多特征、多变量的,因此除了... 查看详情

地统计分析笔记——探索数据

.../49925147在执行地统计分析之前,浏览、熟悉、检查自己的数据是至关重要的。绘制和检查数据是地统计分析过程中的必要阶段,我们可以从这些工作中获得一些先验知识,指导后续的工作。 Stage1绘制数据通过ArcMap的图层渲染... 查看详情

谁说菜鸟不会数据分析-入门篇

...括总结的过程。   帮助管理者进行判断和决策探索性数据分析侧重于在数据之中发现新的特 查看详情