数据科学- 数据准备
在分析数据之前,数据科学家必须提取数据,使其干净且有价值。
使用 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())
数据清洗
查看导入的数据。 如您所见,数据是"脏"的。 带有错误或未注册的值:
- 有一些空白字段
- 9000 次的平均脉搏是不可能的
- 9 000 将被视为非数字,因为有空格分隔符
- 最大脉搏的一次观察被表示为"AF",这没有意义
因此,我们必须清理数据才能执行分析。
删除空白行
我们看到非数字值(9 000 和 AF)与缺失值位于同一行中。
解决方案:我们可以删除缺少观察的行来解决这个问题。
当我们使用 Pandas 加载数据集时,所有空白单元格都会自动转换为 "NaN" 值。
因此,删除 NaN 单元为我们提供了一个可以分析的干净数据集。
我们可以使用 dropna()
函数删除 NaNs. axis=0 表示我们要删除所有具有 NaN 值的行:
实例
health_data.dropna(axis=0,inplace=True)
print(health_data)
结果是一个没有 NaN 行的数据集:
数据类别
要分析数据,我们还需要知道我们正在处理的数据类型。
数据可以分为三大类:
- Numerical - 包含数值。 可以分为两类:
- Discrete:数字被视为"整体"。 示例:您不能训练 2.5 个会话,它是 2 或 3
- Continuous:数字可以具有无限精度。 例如,您可以睡 7 小时、30 分 20 秒或 7.533 小时
- Categorical - 包含无法相互衡量的值。 示例:一种颜色或一种训练类型
- Ordinal - 包含可以相互衡量的分类数据。 示例:A 优于 B 的学校成绩等
通过了解数据的类型,您将能够知道在分析它们时使用什么技术。
数据类型
我们可以使用 info()
函数列出我们数据集中的数据类型:
实例
print(health_data.info())
结果:
我们看到这个数据集有两种不同类型的数据:
- Float64
- Object
我们不能在这里使用对象来计算和执行分析。 我们必须将类型对象转换为 float64(在 Python 中,float64 是一个带小数的数字)。
我们可以使用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())
结果:
现在,数据集只有 float64 数据类型。
分析数据
当我们清理完数据集后,我们就可以开始分析数据了。
我们可以使用 Python 中的 describe()
函数来汇总数据:
实例
print(health_data.describe())
结果:
Duration | Average_Pulse | Max_Pulse | Calorie_Burnage | Hours_Work | Hours_Sleep | |
---|---|---|---|---|---|---|
Count | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
Mean | 51.0 | 102.5 | 137.0 | 285.0 | 6.6 | 7.5 |
Std | 10.49 | 15.4 | 11.35 | 30.28 | 3.63 | 0.53 |
Min | 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 |
Max | 60.0 | 125.0 | 150.0 | 330.0 | 10.0 | 8.0 |
- Count - 统计观察次数
- Mean - 平均值
- Std - 标准差(在统计章节中解释)
- Min - 最低值
- 25%、50% 和 75% 是百分位数(在统计章节中有说明)
- Max - 最高值