趣味谈数据分析(九道门如何执行探索性数据分析)
趣味谈数据分析(九道门如何执行探索性数据分析)
2024-11-06 04:49:07  作者:空中管制  网址:https://m.xinb2b.cn/life/jna446126.html

探索性数据分析(EDA)是了解数据集的关键步骤。在EDA中可以执行各种步骤,下文中会我会介绍 4 个主要步骤。其中数据集来自帕尔默群岛企鹅数据。数据分析优质社群,等你加入哦~

一、仔细检查数据

这一步的目的是找出数据集的变量和范围。它回答诸如"此数据集是否足够大?"或“它包含多少个特征或行?"等问题。加载数据集后,使用 head() 函数检查前五行将是了解数据集结构的良好开端,具体操作如下所示。

import pandas as pdimport numpy as np import seaborn as snsimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings('ignore')#Loading the datasetpenguins_size = pd.read_csv('penguins_size.csv', sep = ",")penguins_size.head()


print("Shape is: ", penguins_size.shape)


从这里得出数据集的范围为(344,7),这意味着存在7个特征和344行,这表示数据集不够大。为了可视化特征的数据类型,可以使用 info() 函数,如下所示。结果显示,物种、岛屿和性别是目标,其余特征是浮动变量。使用 dtypes 也是了解列的数据类型的一种替代方法。

penguins_size.info()


penguins_size.dtypes


二、数据清理

查找缺失值、删除重复项等是探索性数据分析的关键步骤。这些值可能会导致我们的模型最终得出错误的结论。仅调查 isnull()是不够的。例如,在包含心率特征的数据集中,该特征的值不能为 0。在这种情况下,0 也是一个缺失值,需要处理。

有多种方法可以处理数据的缺失值,例如删除包含缺失值的行(如果数据集足够大并且缺失值的数量不是太多,这是一个选项),插补方法(特征的平均值/中位数)等。

penguins_size.isnull().sum()


如上所示,除岛屿和物种外的所有特征在此数据集中都包含缺失值。因为数据集非常小,所以我选择将浮点特征的缺失值与相应特征的均值相结合。

penguins_size.value_counts(["sex"])


penguins_size['sex'] = penguins_size['sex'].fillna('MALE')

对于企鹅的性别,在检查了雌性和雄性值的计数后,将考虑最常见的值,在这种情况下,缺失值将用 "MALE" 进行估算。如上所示,另一个值为".",必须将其归因或丢弃。在所有缺失值被插补或删除后,我们再次使用 isna () 函数进行检查,确定没有遗漏值。

penguins_size.drop(axis = 0, inplace = True, index = 336)penguins_size.isna().sum()


最后,对于这个部分,需要检查是否存在任何重复行。

duplicated = penguins_size.duplicated()print(duplicated.sum())

三、统计洞察

这也是理解数据的一部分。处理缺失值后,可以使用 describe() 函数来获取数据的平均值、最大值、最小值和标准偏差等信息。此方法还可用于检测缺失值,例如,如果特征值的最小值在不应为 0 的地方为 0,则 describe()函数有助于处理缺失值。

penguins_size.describe()


通过使用 value_counts() 函数,可以计算对象的唯一值。此外,每个物种的体重平均值可以通过使用 groupby()函数找到对于连续特征,此函数在分类和观察数据方面非常有用。

penguins_size['species'].value_counts()


# Find body mass mean for each species.mean_bodymass = penguins_size.groupby('species')['body_mass_g'].mean()mean_bodymass


四、数据可视化

为了更好地可视化数据集,可以使用各种绘图技术,在下文中简单介绍几个。有些图在可视化分类数据方面效果更好,有些图则更适合数值数据的可视化。

箱形图

通过显示数据分布来检查异常值或理解分类特征与连续特征之间关系的好方法。

如下图所示,由于没有数据点分别高于或低于最大值和最小值,因此未检测到异常值。此外,可以很容易地找到数据点的中位数,因为通过框内的水平线代表的就是中位数。

#Relationship of the culmen length and sex of the penguins.fig = plt.figure(figsize=(5,8))ax= sns.boxplot(x = penguins_size.sex, y=penguins_size['culmen_length_mm'],orient="v", palette = "cividis")plt.title('Culmen_length_mm')plt.show()


直方图

直方图用于描述频率分布。

#Shows us frequency distribution.fig,axs = plt.subplots(1,4,figsize=(20,6))axs[0].hist(penguins_size.culmen_depth_mm)axs[0].set_title('culmen_depth_mm')axs[0].set_ylabel('Frequency')axs[1].hist(penguins_size.culmen_length_mm)axs[1].set_title('culmen_length_mm')axs[2].hist(penguins_size.flipper_length_mm)axs[2].set_title('flipper_length_mm')axs[3].hist(penguins_size.body_mass_g)axs[3].set_title('body_mass_g')plt.show()


此外,kdeplot 是可视化数据分布的另一种方法。此图实际上类似于直方图,但不是将值放入条柱中,而是绘制一条曲线。

#Used for visualizing the probability density of a continuous var.sns.kdeplot(penguins_size.flipper_length_mm,color='Cyan')plt.show()


条形图

在条形图中,x 轴表示分类变量, y 轴表示数值变量。这就是为什么条形图描绘了这两个变量之间的关系。

plt.figure(figsize=(8,5))colors = ["cyan","lightblue", "darkblue"]sns.barplot(x =penguins_size['island'],y = penguins_size['body_mass_g'], palette = colors)plt.title('Body Mass of Penguins for different Islands')plt.show()


通过使用 pandas 函数交叉表,可以分析两个或多个变量之间的关系。作为说明,下面的条形图强调了生活在特定岛屿中的特定物种的企鹅数量之间的关系。

pd.crosstab(penguins_size['island'], penguins_size['species']).plot.bar(color=('DarkBlue', 'LightBlue', 'Teal'))plt.tight_layout()


小提琴图

小提琴图描述的是数据集的概率密度。由于两个不同的类别可能具有相同的平均值,在这种情况下观察小提琴图会更有用。

在下面的小提琴图中,梦幻岛企鹅体重的平均值在3000到4000克之间,而在比斯科岛企鹅体重的平均值大约在4500到5500克之间。

sns.violinplot(x = 'island',y = 'body_mass_g',data = penguins_size, palette="YlOrRd_r")plt.title('Violin plot')


想要完整代码的同学可以留言获取哦~


  • 辨别磷酸二氢钾的方法(怎么避免买到磷酸二氢)
  • 2024-11-06怎么避免买到磷酸二氢曾经学农君做过一个调查,在大家使用的肥料中,大家最关心的是哪一种?得到的答案一致的统一——都想了解磷酸二氢钾!为什么要用它?磷酸二氢钾真的是难得的好肥料,它是白色结晶体,无味、无臭、无毒、易溶于水、弱。
  • 二陈汤配三九胃泰有什么功效(从二陈汤的使用看胃病的治疗)
  • 2024-11-06从二陈汤的使用看胃病的治疗很多时候,药方看似简单,但使用效果会很好,关键是你对这个药方的理解度,理解了,用起来就得心应手半夏,陈皮茯苓甘草,这是二陈汤的组成,叫二陈汤的意思是半夏用陈半夏,陈皮更不用说,越沉越好半夏性辛,辛则散。
  • 蒙迪欧2.0t正时工具(蒙迪欧2.0LDuratec-HE)
  • 2024-11-06蒙迪欧2.0LDuratec-HE正时链条的拆卸01转动曲轴至1缸活塞上止点前45°02拆下曲轴皮带轮03取下皮带轮摩擦垫圈04拆下发动机正时前盖05按下图所示方法锁止正时链条张紧器,释放链条张紧力沿箭头1方向45°压正时链条张紧导轨。
  • 滴滴王卡可以改成腾讯王卡吗(滴滴王卡升级腾讯免流)
  • 2024-11-06滴滴王卡升级腾讯免流IT之家12月2日消息近日滴滴王卡宣布免费升级,升级后看腾讯视频将免流滴滴王卡是滴滴官方定制的滴滴司机专用工作手机号,并由滴滴官方限量发布,分为“大王卡”和“小王卡”,针对用户群是滴滴司机,原套餐具体。
  • 辣子鸡最好吃香辣的做法(辣子鸡学会这样做)
  • 2024-11-06辣子鸡学会这样做大家好,这里是第一名厨,关注我们,会有更多的美食供您参考,让您的生活更加美味辣子鸡是一道十分出名的川菜,味道麻辣,鸡肉香韧有嚼劲,当香酥鲜嫩的鸡肉遇上香辣酥脆的辣椒,一口咬下去嘎嘣脆,一盘吃下去连辣椒。
  • 第十代索纳塔运动优雅的继承者(第九代索纳塔给你惊喜)
  • 2024-11-06第九代索纳塔给你惊喜2015年,北京现代引进了索纳塔第六代车型,这是索纳塔最成熟的一款车型,根据中国道路情况做了很多测试,加宽了后座空间第九代索纳塔是北京现代迄今为止在科技革新、设计美学及智能服务方面的最高水准索纳塔的车。
  • 辣爆鸡丁的做法(好吃又简单)
  • 2024-11-06好吃又简单把鸡肉放在烧热人锅里翻炒,放料酒,盐,(锅里不放油)把水份抄干,然后放入姜丝,继续抄,抄熟为止,不再放任何调料然后出锅锅里放油烧热,把干辣椒、花椒放进去抄,(干辣椒、花椒要多些)抄出香味,然后把鸡肉下。
  • 徐州本地美食推荐(徐州美食篇)
  • 2024-11-06徐州美食篇美食就是生活,生活就是故事,美食文化是一座城市文化的重要的组成部分偏好什么口味就可以知道你是什么性格一座城市的特色美食,也代表着这座城市的特点!今天在聊徐州市的特色美食之前,咱们先来了解一下这座城市。
  • 电视剧天若有情季冬阳喜欢谁(天若有情季冬阳魅力大)
  • 2024-11-06天若有情季冬阳魅力大周大山是一个很神奇的人,妻子王琪多年出轨季冬阳,但他视若无睹周大山的人生哲学是他要做乌龟,因为龟兔赛跑,最后赢的就是那只乌龟王琪当年结束了一段很痛苦的感情,周大山一直安慰他,自然而然两个人就走到了一起。
  • 小时候的照片发朋友圈说说(小时候的照片发朋友圈说说精选)
  • 2024-11-06小时候的照片发朋友圈说说精选翻出小时候照片,好怀念小时候游来游去自由的生活小时候丢失的照片,竟然奇迹般的找到了,对亏亲姨留存蕊姑娘给我织的红色围巾童年时的那些事,终究会被我们埋葬何不趁着现在,努力的回忆突然翻到一张小时候照片,希。
  • 老乡鸡平均每个店的收入(老乡鸡走不出安徽)
  • 2024-11-06老乡鸡走不出安徽撰文/《财经天下》周刊作者杨阳编辑/陈芳安徽以外市场无一盈利近日,老乡鸡正式披露招股书申报稿,拟在上交所主板上市,冲刺“中式快餐第一股”此次上市,老乡鸡计划发行6353万股,募集资金12亿元,用于华东。