在分析数据之前,数据科学家必须提取数据,并使其干净且有值。
在分析数据之前,必须导入/提取数据。
在下面的示例中,我们向您展示如何在 Python 中使用 Pandas 导入数据。
我们使用read_csv()
导入包含健康数据的 CSV 文件的函数:
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
亲自试一试 »
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" 包含错误或未注册的值:
因此,我们必须清理数据才能进行分析。
我们看到非数字值(9 000 和 AF)位于具有缺失值的同一行中。
解决方案:我们可以删除缺少观测值的行来解决此问题。
当我们使用 Pandas 加载数据集时,所有空白单元格都会自动转换为 "NaN" 值。
因此,删除 NaN 单元为我们提供了一个可以分析的干净数据集。
我们可以使用dropna()
函数删除 NaN。 axis=0 意味着我们要删除所有具有 NaN 值的行:
结果是一个没有 NaN 行的数据集:
为了分析数据,我们还需要知道我们正在处理的数据的类型。
数据可以分为三个主要类别:
通过了解数据的类型,您将能够知道在分析数据时使用什么技术。
我们可以使用info()
列出数据集中的数据类型的函数:
结果:
我们看到这个数据集有两种不同类型的数据:
这里我们不能用对象来计算和分析。我们必须将类型对象转换为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())
亲自试一试 »
结果:
现在,数据集只有 float64 数据类型。
当我们清理完数据集后,我们就可以开始分析数据了。
我们可以使用describe()
Python 中汇总数据的函数:
结果:
期间 | 平均脉冲 | 最大脉冲 | 卡路里_燃烧 | 工作时间 | 睡眠时间 | |
---|---|---|---|---|---|---|
数数 | 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 |