如何进行探索性数据分析

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(使用前将#替换为@)

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

  • 在 Python 中解析 TCL 列表

    我需要在双括号上拆分以空格分隔的 TCL 列表 例如 OUTPUT 172 25 50 10 01 01 Ethernet 172 25 50 10 01 02 Ethernet Traffic Item 1 172 25 50 10 01
  • 计算另一个字符串中多个字符串的出现次数

    在 Python 2 7 中 给定以下字符串 Spot是一只棕色的狗 斑点有棕色的头发 斑点的头发是棕色的 查找字符串中 Spot brown 和 hair 总数的最佳方法是什么 在示例中 它将返回 8 我正在寻找类似的东西string c
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 如何将 GAE 中一种 Kind 中的所有实体复制到另一种 Kind 中,而无需显式调用每个属性

    我们如何使用function clone entity 如中所述在 Python 中复制 Google App Engine 数据存储中的实体 而无需在 编译 时知道属性名称 https stackoverflow com question
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 在 Google App Engine 中,如何避免创建具有相同属性的重复实体?

    我正在尝试添加一个事务 以避免创建具有相同属性的两个实体 在我的应用程序中 每次看到新的 Google 用户登录时 我都会创建一个新的播放器 当新的 Google 用户在几毫秒内进行多个 json 调用时 我当前的实现偶尔会创建重复的播放器
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 在virtualenv中下载sqlite3

    我正在尝试使用命令创建应用程序python3 manage py startapp webapp但我收到一条错误消息 django core exceptions ImproperlyConfigured 加载时出错 pysqlite2 或
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • 百度 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分别表示石头 剪刀和布 系统分别打印出自己的出拳状
  • 如何进行探索性数据分析

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