如何进行探索性数据分析

2023-11-03

一般数据分析项目第一步都需要探索性数据分析。主要包括三个方面:

  • 使用描述性统计汇总数据
  • 使用图标可视化数据
  • 识别缺失值

通过上述三个方面分析,可以在执行假设检验或统计模型之前对数据集的分布情况有基本理解,并检测获得问题数据情况。

下面通过示例说明探索性数据分析,并给出Python代码实现。

准备示例数据

首先创建pandas数据框:

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, np.nan, 9, 12]})

通过head()函数查看前五行数据:

df.head()

# 	team	points	assists	rebounds
# 0	A	18	5	11.0
# 1	A	22	7	8.0
# 2	A	19	7	10.0
# 3	A	14	9	6.0
# 4	B	14	12	6.0

查看数据概况

使用describe() 函数可以快速查看每个数值变量的概况:

df.describe()

#       points	    assists 	rebounds
# count	8.0000000	8.00000 	7.000000
# mean	18.250000	7.75000 	8.857143
# std	5.3652320	2.54951 	2.340126
# min	11.000000	4.00000 	6.000000
# 25%	14.000000	6.50000 	7.000000
# 50%	18.500000	8.00000 	9.000000
# 75%	20.500000	9.00000 	10.50000
# max	28.000000	12.0000     12.00000

每个数值变量的信息说明:

count: 非缺失值数量
std: 均值
min: T最小值
25%: 第一四分位值 (前25%)
50%: 中位数 (前50%)
75%: 第三四分位值 (前75%)
max: 最大值

对于类别变量,可以使用value_counts获得每个值的频数:

df['team'].value_counts()

# A    4
# B    4
# Name: team, dtype: int64

通过输出可以看到:

A: 共出现4次.
B: 共出现4次.

通过shape属性可以获得数据框的维度:即行数和列数:

df.shape

# (8, 4)

数据可视化

下面通过可视化方式了解数据集。举例,pandas的hist()函数创建每个数值变量的直方图:

每个直方图的x轴现实每个值,y轴现实值的频数。

import matplotlib.pyplot as plt

df.hist(grid=False, edgecolor='black')
plt.show()

在这里插入图片描述

我们还可以使用pandas的boxplot()函数创建箱线图:

# 创建每个变量的箱线图

df.boxplot(grid=False)

上面代码在一张图上展示多个变量的箱线图。但有时因单位不同,需要单独对每个变量画箱线图:

df['points'].plot(kind='box')

# 或下面语法

df.boxplot(column='points', grid=False)

在这里插入图片描述

也可以使用pandas的corr函数创建协方差矩阵:

df.corr()

#          points	  assists	 rebounds
# points	1.000000	-0.725841	 0.767007
# assists	-0.725841	 1.000000	-0.882046
# rebounds  0.767007	-0.882046	 1.000000

识别缺失值

下面代码统计所有缺失值:

df.isnull().sum()

# team        0
# points      0
# assists     0
# rebounds    1
# dtype: int64

输出显示仅rebounds变量一个缺失值,其他列没有缺失值。

总结

经过上面步骤,我们基本已经完成了该数据集的基本探索性数据分析,并且较好地理解了数据集中每个变量值的如何分布情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何进行探索性数据分析 的相关文章

  • 翠儿。让流永远运行

    我对 tweepy python 库比较陌生 我想确保我的流 python 脚本始终在远程服务器上运行 因此 如果有人能够分享如何实现这一目标的最佳实践 那就太好了 现在我正在这样做 if name main while True try
  • 将tensorflow 2.0 BatchDataset转换为numpy数组

    我有这个代码 train images test images tf keras datasets mnist load data train dataset tf data Dataset from tensor slices train
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • 在python中将文本文件解析为列表

    我对 Python 完全陌生 我正在尝试读取包含单词和数字组合的 txt 文件 我可以很好地读取 txt 文件 但我正在努力将字符串转换为我可以使用的格式 import matplotlib pyplot as plt import num
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 如何在 Python 中将彩色输出打印到终端?

    是否有与 Perl 等效的 Python 语言 print color red print
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 如何在Python和Selenium中通过标签名称或id获取元素[重复]

    这个问题在这里已经有答案了 我正在尝试使用 Python 和 Selenium 获取输入 但它向我显示错误 我该如何解决这个错误 inputElement send keys getStock getStocklFunc 0 Error i
  • Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4

    我正在尝试为我的功能绘制图表 但不断收到此错误 ValueError RGBA sequence should have length 3 or 4 每当我只有 6 种形状时 代码就可以完美运行 但现在我将其增加到 10 种 它就不起作用了
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • Airflow Python 单元测试?

    我想为我们的 DAG 添加一些单元测试 但找不到任何单元测试 有 DAG 单元测试框架吗 有一个端到端的测试框架存在 但我猜它已经死了 https issues apache org jira browse AIRFLOW 79 https
  • 查找给定节点的最高权重边

    我在 NetworkX 中有一个有向图 边缘的权重从 0 到 1 表示它们发生的概率 网络连通性非常高 所以我想修剪每个节点的边缘 只保留最高概率的节点 我不确定如何迭代每个节点并仅保留最高权重in edges在图中 有没有一个networ
  • Flask WTForms 使用变量自动填充 StringField

    我有一个表格 我想用上一页收到的信息自动填充一些字段 但如果他们想调整它 它需要是可更改的 我正在为我的 SelectField 使用动态创建的列表 但添加 StringField 并不成功 请参阅下面的我的代码 forms py clas
  • 全局变量是 None 而不是实例 - Python

    我正在处理Python 中的全局变量 代码应该可以正常工作 但是有一个问题 我必须使用全局变量作为类的实例Back 当我运行应用程序时 它说 back is None 这应该不是真的 因为第二行setup 功能 back Back Back
  • 异步和协程与任务队列

    我一直在阅读有关 python 3 中的 asyncio 模块的内容 以及更广泛地了解 python 中的协程的内容 但我不明白是什么让 asyncio 成为如此出色的工具 我的感觉是 你可以用协程做的所有事情 通过使用基于多处理模块 例如
  • 在 Python 模块中使用 InstaLoader

    我正在尝试使用 Instaloader 下载与主题标签相关的照片以进行图像分析 我在GitHub存储库中找到了一个全面的方法 如何在终端中执行它 但是 我需要将脚本集成到Python笔记本中 这是脚本 instaloader no vide

随机推荐

  • 百度 Hydra 工具在移动端 UI 兼容性测试上的高效应用

    导读 尽管自动化测试技术日新月异 但是自动化case构建成本 执行稳定性等问题的存在 使手工测试依然移动端质量保证的重要手段 传统手工测试必须通过人工操作的方式执行测试用例 效率提升依赖测试人员的操作熟练度 本文从介绍百度内UI兼容性测试现
  • Spire.xls+excel文件实现单据打印

    报表和单据打印 通常都是使用fastreport之类的 因为有了现成的xls模板样式 如果转成fastreport那还需要花时间 是用spire xls这个玩意简单 超好用 一 引用 using Spire Xls 二 基本的操作 创建工作
  • 在MinGW启动时激活环境变量

    熟悉Linux的都知道 在进入SHELL时 一共有四种方式添加环境变量与添加自定义命令 如下 文件位置 用途 优先级 补充说明 etc profile 通用环境信息 首用户登录执行 1 会从 etc profile d目录件中搜集shell
  • 阿里与华为,引领科技现代化进程

    阿里NASA计划和华为2012实验室 3月9日 马云在阿里巴巴技术峰会上 首次重磅推出了阿里 NASA 计划 对航天稍有了解的读者都知道 NASA是美国太空总署的英文简称 代表着太空 尖端科技 和人类精神上的英雄主义理想 NASA虽然探索者
  • Dp,DVI,Hdmi接口信号

    DP HDMI与DVI接口信号记录 1 DP接口 DP信号包含主链路 main link 自动辅助通道 AUX CH 和热插拔信号 Hot plug detect 1 主链路采用的是双端交流差分信号 lane 2 带宽提供5 4G 2 7G
  • cmd错误: 找不到或无法加载主类 的解决办法

    写在前面 大家好 我是草莓橙须圆 毕业之前在CSDN和微信公众号活跃 欢迎关注我的公众号 草莓橙须圆 微信号 cmcxy8w 微信公众号主要就是更新一些日常和有用的小工具 CSDN主要就是学习Java过程中总结的笔记 今天遇到的问题 在cm
  • 1.0 java_Mybatis_oracle基于WEB的仓库管理系统的设计与实现(源码+数据库sql+论文+视频齐全)----库管理系统---源码在底部

    基于Web的仓库管理系统的设计与实现 摘 要 仓库物品的管理是与我们的日常生活息息相关的一个重大问题 随着我国经济飞速的发展 改革开放的不断深入 企业要想在激烈的市场竞争中立于不败之地 要想继续的发展与生存 没有现代化的管理方式与方法是万万
  • 微信登录界面安卓代码_安卓模拟器微信登录闪退,转圈,停止运行解决方法

    雷电模拟器微信登录不上 微信闪退 模拟器微信停止运行等等问题一直在论坛出现 雷电模拟器最新版本已经解决了大部分的微信登录问题了 还是会有小部分伙伴出现了难以解决的问题 微信停止运行一般是建议安装最新雷电模拟器最新版本 如果是微信登录不上的话
  • MySQL数据库综合案例1----创建“教务管理系统“数据库

    本节以教育管理系统为例来介绍数据库的创键和数据表的设计 案例需求 1 教务管理系统用来帮助高校学生选修课程 2 学生可以通过系统查看所有选修课的相关信息 包括课程名 学时 学分 也可以查看相关授课老师的信息 3 老师的信息包括教师姓名 性别
  • 用RBF网络实现单输入单输出非线性函数的拟合

    用RBF网络实现单输入单输出非线性函数的拟合 100个输入输出训练样本给定 101个输入输出测试样本给定 要求 使用1 10 1的RBF网络结构 输出节点有阈值 使用KNN K means聚类算法求出10个聚类中心和方差 聚类中心的初始值为
  • 数据库的c#实现 《添加数据》

    1 在SQL中 先创建数据库和表 create database Mycar use Mycar create table Car Id int primary key identity 1 1 设置编号 从1开始自增 每次加1 Title
  • html手风琴案例

    我们在前端开发的时候经常遇到鼠标经过的时候发生事件 鼠标离开的时候发生事件的效果 下面看看效果图 这下来看看我们的代码吧 html部分 div ul li a href img src images 1 jpg alt a li li a
  • Android 屏幕发生旋转对应的生命周期发生变化解析

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 用户首次进入页面后执行的生命周期回调方法 二 屏幕发生旋转后 切换成了横屏 原先的活动被销毁 会重新创建新的活动 三 将横屏切回为竖
  • 栈和队列的基本操作(栈和队列的区别)

    数据结构中的栈与内存中的栈的不同 一 数据结构中的堆栈 在数据结构中的堆栈 实际上堆栈是两种数据结构 堆和栈 堆和栈都是一种数据项按序排列的数据结构 1 栈就像装数据的桶或箱子 我们先从大家比较熟悉的栈说起吧 它是一种具有后进先出性质的数据
  • 基于python 和 matlab的矩阵奇异值分解

    https www cnblogs com pinard p 6251584 html 可参考 一个 mxn的矩阵H可以分解为 U mxm S mxn V nxn 三个矩阵的乘积 这就是奇异值分解 S是一个对角矩阵 一般从大到小排列 S的元
  • Ubuntu16虚拟机调整窗口大小自适应windows7

    win7上ubuntu16虚拟机安装成功后 默认的虚拟机窗口比较小 需要适当调整 才能把虚拟机的屏幕放大 适合使用 以下介绍调整方法 安装vmware tools 启动虚拟机 在虚拟机管理界面上 主屏幕菜单 虚拟机 中点击 安装vmware
  • Xposed集成到Android系统

    XposedBridge 下载源码 然后编写Android mk文件放入源码根目录 LOCAL PATH call my dir include CLEAR VARS LOCAL DEX PREOPT false LOCAL MODULE
  • Qt编译,出现 first defined here,解决方法

    Qt编译 出现 first defined here 解决方法 一般出现这个问题是 pro文件多次包含了某个文件 解决方法 编译时候 找到是哪个文件出现 first defined here 这个错误 定位到文件 你再去 pro文件去找一下
  • 石头剪刀布游戏

    2 石头剪刀布游戏 编写程序模拟石头剪刀布人机对战 程序运行时 系统先出 生成一个随机数 若果为1表示系统出的是石头 2表示系统出的是剪刀 3表示系统出的是布 提示用户输入 同样的1 2 3分别表示石头 剪刀和布 系统分别打印出自己的出拳状
  • 如何进行探索性数据分析

    一般数据分析项目第一步都需要探索性数据分析 主要包括三个方面 使用描述性统计汇总数据 使用图标可视化数据 识别缺失值 通过上述三个方面分析 可以在执行假设检验或统计模型之前对数据集的分布情况有基本理解 并检测获得问题数据情况 下面通过示例说