📜  从 sns 加载 diamonds 数据集 - Python (1)

📅  最后修改于: 2023-12-03 15:06:32.462000             🧑  作者: Mango

从 SNS 加载 Diamonds 数据集 - Python

Diamonds 数据集是很多数据科学家们非常喜欢的数据集之一。它包含了关于钻石价格和质量的信息。在这篇文章中,我们将介绍如何使用 Python 从一个 SNS 加载 Diamonds 数据集,并进行数据预处理和可视化。

准备工作

在开始之前,我们需要确保我们已经安装了以下 Python 库:

  • Pandas
  • Seaborn
  • Matplotlib

我们可以通过使用以下命令安装它们:

!pip install pandas seaborn matplotlib
数据集简介

Diamonds 数据集包含了 10 个变量和 50,000 行数据,其中 9 个变量是钻石的属性信息(例如,克拉,颜色等),一个变量是钻石的价格。

我们将在本文中使用一个名为 sns.load_dataset() 的函数加载数据集,该函数是 Seaborn 库提供的。该函数的默认返回值是一个 Pandas DataFrame。Pandas 是一个开源数据分析和数据操纵库,提供了各种数据操作和数据结构,使我们可以轻松地读入数据,处理数据等等。

读取 Diamonds 数据集

让我们来看一下如何使用 sns.load_dataset() 函数加载 Diamonds 数据集。以下是代码片段:

import seaborn as sns

diamonds = sns.load_dataset('diamonds')

在这里,我们导入了 Seaborn 库,并使用 sns.load_dataset() 函数加载了 diamonds 数据集,并将其存储在名为 diamonds 的变量中。

数据预处理

在继续进行数据分析之前,我们需要进行一些数据预处理操作。这个过程包括:

  • 数据的基本信息
  • 缺失值的处理
  • 重复行的删除

我们首先使用 diamonds.head() 函数查看数据的前 5 行,以对数据集有一个初步的印象。

diamonds.head()

这应该输出以下信息:

   carat      cut color clarity  depth  table  price     x     y     z
0   0.23    Ideal     E     SI2   61.5   55.0    326  3.95  3.98  2.43
1   0.21  Premium     E     SI1   59.8   61.0    326  3.89  3.84  2.31
2   0.23     Good     E     VS1   56.9   65.0    327  4.05  4.07  2.31
3   0.29  Premium     I     VS2   62.4   58.0    334  4.20  4.23  2.63
4   0.31     Good     J     SI2   63.3   58.0    335  4.34  4.35  2.75

接下来,我们使用 diamonds.info() 函数查看每个变量的数据类型和非空值数量。

diamonds.info()

这应该输出以下信息:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 53940 entries, 0 to 53939
Data columns (total 10 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   carat    53940 non-null  float64
 1   cut      53940 non-null  category
 2   color    53940 non-null  category
 3   clarity  53940 non-null  category
 4   depth    53940 non-null  float64
 5   table    53940 non-null  float64
 6   price    53940 non-null  int64  
 7   x        53940 non-null  float64
 8   y        53940 non-null  float64
 9   z        53940 non-null  float64
dtypes: category(3), float64(6), int64(1)
memory usage: 2.9 MB

我们可以看到,我们的数据集包含 10 个变量和 50,000 行数据,每个变量都没有空值。

最后,我们使用 diamonds.drop_duplicates() 函数删除重复行,并在数据集中使用 diamonds.describe() 函数查看数值变量的描述性统计信息。

diamonds.drop_duplicates(inplace=True)
diamonds.describe()
数据可视化

让我们通过一些数据可视化来探索 Diamonds 数据集。我们将使用 Seaborn 库来绘制图表。以下是我们可以绘制的一些有用的图表:

  • 散点图 matrix
  • 颜色深度热图
  • 钻石价格直方图和箱线图

下面是绘制散点图 matrix 的代码片段:

sns.pairplot(data=diamonds, x_vars=['carat', 'depth', 'table'], y_vars=['price'])

这将绘制一个包含散点图的矩阵,其 x 轴是 carat、depth 和 table,y 轴是 price。

下面是绘制颜色深度热图的代码片段:

sns.heatmap(diamonds.corr(), annot=True)

这将绘制一个颜色深度热图,其中每个单元格的颜色表示两个变量之间的相关性。我们也可以通过在相关矩阵中设置 annot=True 来将每个单元格的值显示在单元格内。

最后,下面是绘制钻石价格直方图和箱线图的代码片段:

sns.histplot(diamonds['price'], kde=True)
sns.boxplot(x=diamonds["price"])

这将绘制一个包含钻石价格直方图和箱线图的图表,方便我们了解数据的分布和离群值。

结论

在本文中,我们介绍了如何使用 Python 从一个 SNS 加载 Diamonds 数据集,并进行数据预处理和可视化。我们学习了如何删除重复行并查看数值变量的描述性统计信息。最后,我们使用 Seaborn 库绘制了一些有用的图表来帮助我们了解 Diamonds 数据集的特征。