Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

数据科学 - 数据准备


在分析数据之前,数据科学家必须提取数据,并将其清理并使其变得有价值。


使用 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 表示变量名的标题在第一行中找到(注意,在 Python 中 0 表示第一行)
  • sep="," 表示 "," 用于作为值之间的分隔符。这是因为我们使用的是 .csv 文件类型(逗号分隔值)

提示: 如果您有一个大型 CSV 文件,可以使用 head() 函数仅显示前 5 行

示例

import pandas as pd

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

print(health_data.head())
自己试试 »

数据清理

查看导入的数据。如您所见,数据是“脏的”,包含错误或未注册的值

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. 定量数据 - 可以用数字表示或可以量化。可以分为两个子类别
    • 离散数据:数字按“整体”计数,例如班级中的学生人数,足球比赛中的进球数
    • 连续数据:数字可以具有无限精度。例如,人的体重、鞋码、温度
  2. 定性数据 - 不能用数字表示,也不能量化。可以分为两个子类别
    • 名义数据:例如:性别、头发颜色、种族
    • 有序数据:例如:学校成绩(A、B、C)、经济状况(低、中、高)

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


数据类型

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

示例

print(health_data.info())
自己试试 »

结果

Datatype float and object

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

  • Float64
  • 对象

我们不能使用对象在这里进行计算和执行分析。我们必须将对象类型转换为 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 数据类型。


分析数据

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

我们可以使用 Python 中的 describe() 函数对数据进行总结

示例

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% 是百分位数(在统计章节中解释)
  • 最大值 - 最高值

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.