菜单
×
   ❮     
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
  • 有些字段是空白的
  • 平均脉搏 9000 是不可能的
  • 由于空格分隔符,9000 将被视为非数字
  • 最大脉搏的一个观测值被标记为“AF”,这没有意义

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


删除空白行

我们看到非数字值(9000 和 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(在 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())
自己动手试一试 »

结果

Datatype float

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


分析数据

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

我们可以在 Python 中使用 describe() 函数来总结数据

示例

print(health_data.describe())
自己动手试一试 »

结果

  持续时间 Average_Pulse Max_Pulse Calorie_Burnage Hours_Work Hours_Sleep
Count 10.0 10.0 10.0 10.0 10.0 10.0
均值 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 - 计算观测值的数量
  • 均值 - 平均值
  • Std - 标准差(在统计学章节中解释)
  • Min - 最小值
  • 25%, 50%75% 是百分位数(在统计学章节中解释)
  • Max - 最大值

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持