如何进行探索性数据分析

人工智能49

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

[En]

The first step of a general data analysis project requires exploratory data analysis. It mainly includes three aspects:

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

通过以上三个方面的分析,我们可以在实施假设检验或统计模型之前对数据集的分布有一个基本的了解,并检测和获得问题数据。

[En]

Through the analysis of the above three aspects, we can have a basic understanding of the distribution of the data set before implementing the hypothesis test or statistical model, and detect and obtain the problem data.

下面通过示例说明探索性数据分析,并给出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)

上面的代码在一个图上显示了一个包含多个变量的框图。但有时,由于单位不同,需要分别为每个变量绘制框图:

[En]

The above code shows a box diagram of multiple variables on a single diagram. But sometimes, due to different units, you need to draw a box diagram for each variable separately:

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变量一个缺失值,其他列没有缺失值。

总结

经过上述步骤,我们基本完成了对数据集的基本探索性数据分析,对数据集中各个变量的值是如何分布的有了很好的了解。

[En]

After the above steps, we have basically completed the basic exploratory data analysis of the data set, and have a good understanding of how the values of each variable in the data set are distributed.

Original: https://blog.csdn.net/neweastsun/article/details/125362564
Author: 梦想画家
Title: 如何进行探索性数据分析

相关文章
3D点云深度学习-浅谈点云分割 人工智能

3D点云深度学习-浅谈点云分割

先说一点题外话 研究生三年,开始学了一年的图像检测,还没学明白,然后实验室都开始做点云,就转到点云方向做了两年,没什么大成就,因为感觉我学了两年时间刚刚入门,而且大多数的学习都是跑跑现成的代码,有一些...
tensorflow-serving源码阅读1 人工智能

tensorflow-serving源码阅读1

准备写几个文章来记录对tensorflow代码的阅读。本文主要写tensorflow代码阅读准备及tensorflow-serving代码的阅读。 代码阅读前,还是需要准备一下装备来提升代码阅读效率,...
音频(四) 语谱图 Spectrogram 的分类 人工智能

音频(四) 语谱图 Spectrogram 的分类

1 窗函数 语音中设计窗函数,窗函数性质大同小异,这里以窗函数为对象进行分析。 对于时域的窗函数: 表达式: 对应的FT: f(t)对应 的频域 表达式: 可见信号的时宽越大(小),信号的频带宽度越小...
关于VCTK数据集 人工智能

关于VCTK数据集

抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。 Original: https://blog.cs...
模型训练过程中出现Nan该怎么办? 人工智能

模型训练过程中出现Nan该怎么办?

在深度学习模型训练过程中,有时会出现损失值为Nan的情况。那么在训练过程中发生Nan的最常见原因是什么?其次,有什么方法可以解决这个问题? 1-无效输入 原因:输入中包含Nan或者输入为空,对于图像而...
如何在VS2017中配置OpenCV 人工智能

如何在VS2017中配置OpenCV

如何在VS2017配置OpenCV 步骤共分为一下5步: 下载OpenCV SDK 与安装 安装VS2015或者VS2017 1、 配置包含目录 2、 配置库目录 3、 配置链接器 4、 配置环境变量...