数据科学 - 数据准备


在分析数据之前,数据科学家必须提取数据,并使其干净且有值。


使用 Pandas 提取和读取数据

在分析数据之前,必须导入/提取数据。

在下面的示例中,我们向您展示如何在 Python 中使用 Pandas 导入数据。

我们使用read_csv()导入包含健康数据的 CSV 文件的函数:

示例

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data)
亲自试一试 »

示例解释

  • 导入 Pandas 库
  • 将数据框命名为health_data
  • header=0表示变量名称的标题位于第一行(请注意,0 表示 Python 中的第一行)
  • sep=","表示使用 "," 作为值之间的分隔符。这是因为我们使用文件类型 .csv(逗号分隔值)

提示:如果您有较大的 CSV 文件,可以使用 head()函数只显示前 5 行:

示例

import pandas as pd

health_data = pd.read_csv("data.csv", header=0, sep=",")

print(health_data.head())
亲自试一试 »

数据清理

查看导入的数据。如您所见,数据 "dirty" 包含错误或未注册的值:

Dirty data
  • 有一些空白字段
  • 平均脉冲 9 000 次是不可能的
  • 由于空格分隔符,9 000 将被视为非数字
  • 最大脉冲的一个观察值表示为"AF",这是没有意义的

因此,我们必须清理数据才能进行分析。


删除空白行

我们看到非数字值(9 000 和 AF)位于具有缺失值的同一行中。

解决方案:我们可以删除缺少观测值的行来解决此问题。

当我们使用 Pandas 加载数据集时,所有空白单元格都会自动转换为 "NaN" 值。

因此,删除 NaN 单元为我们提供了一个可以分析的干净数据集。

我们可以使用dropna()函数删除 NaN。 axis=0 意味着我们要删除所有具有 NaN 值的行:

示例

health_data.dropna(axis=0,inplace=True)

print(health_data)
亲自试一试 »

结果是一个没有 NaN 行的数据集:

Cleaned data

数据类别

为了分析数据,我们还需要知道我们正在处理的数据的类型。

数据可以分为三个主要类别:

  1. 数值- 包含数值。可分为两类:
    • 离散:数字按 "whole" 计数。示例:您不能训练 2.5 个会话,它是 2 或 3
    • 连续:数字可以具有无限精度。例如,您可以睡 7 小时 30 分 20 秒,即 7.533 小时
  2. 分类的- 包含无法相互衡量的值。示例:一种颜色或一种训练类型
  3. 序数- 包含可以相互衡量的分类数据。示例:A 优于 B 的学校成绩,依此类推

通过了解数据的类型,您将能够知道在分析数据时使用什么技术。


数据类型

我们可以使用info()列出数据集中的数据类型的函数:

示例

print(health_data.info())
亲自试一试 »

结果:

Datatype float and object

我们看到这个数据集有两种不同类型的数据:

  • 浮点64
  • 对象

这里我们不能用对象来计算和分析。我们必须将类型对象转换为float64(float64是Python中带小数的数字)。

我们可以使用astype()函数将数据转换为float64。

以下示例将 "Average_Pulse" 和 "Max_Pulse" 转换为数据类型 float64(其他变量已经是 float64 数据类型):

示例

health_data["Average_Pulse"] = health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] = health_data["Max_Pulse"].astype(float)

print (health_data.info())
亲自试一试 »

结果:

Datatype float

现在,数据集只有 float64 数据类型。


分析数据

当我们清理完数据集后,我们就可以开始分析数据了。

我们可以使用describe()Python 中汇总数据的函数:

示例

print(health_data.describe())
亲自试一试 »

结果:

  期间 平均脉冲 最大脉冲 卡路里_燃烧 工作时间 睡眠时间
数数 10.0 10.0 10.0 10.0 10.0 10.0
意思是 51.0 102.5 137.0 285.0 6.6 7.5
标准 10.49 15.4 11.35 30.28 3.63 0.53
最小 30.0 80.0 120.0 240.0 0.0 7.0
25% 45.0 91.25 130.0 262.5 7.0 7.0
50% 52.5 102.5 140.0 285.0 8.0 7.5
75% 60.0 113.75 145.0 307.5 8.0 8.0
最大限度 60.0 125.0 150.0 330.0 10.0 8.0
  • 数数- 计算观察值的数量
  • 意思是- 平均值
  • 标准- 标准差(在统计章节中解释)
  • 最小- 最低值
  • 25%,50%75%是百分位数(在统计章节中解释)
  • 最大限度- 最高值