使用Pandas DataFrame处理数据

pandas库是用于处理,操作和分析结构化数据的功能极为丰富的开源工具包。 数据表可以存储在熊猫可用的DataFrame对象中,并且可以将多种格式的数据(例如.csv,.tsv,.xlsx和.json)直接读取到DataFrame中。 利用内置函数,可以有效地操纵DataFrame。

从文件读取数据

大多数中小型数据集通常以分隔文件的形式提供或共享,例如逗号分隔值(CSV),制表符分隔值(TSV),Excel(.xslx)和JSON文件。 Pandas提供了内置的I / O功能,可以将多种格式的文件读取到DataFrame中,例如read_csv,read_excel和read_json等。 在本文中,我们将使用diamond数据集。

  • 打开Jupyter笔记本并加载pandas和Seaborn库:
#Load pandas library
import pandas as pd
import seaborn as sns
  • 指定数据集的URL:
  • 从URL读取文件到pandas DataFrame:

数据集直接从URL读取!

注意:如果只需要读取特定的列,请使用usecols参数。

对于其他数据类型,可以使用该语法,如下所示:

diamonds_df_specific_cols = pd.read_csv(diamonds_url,
usecols=['carat','cut','color','clarity'])

观察和描述数据

现在我们知道了如何从数据集中读取数据,让我们继续观察和描述数据集中的数据。 pandas还提供了一种使用head()函数查看DataFrame中前几行的方法。 默认情况下,它显示5行。 为了对此进行调整,我们可以使用参数n-例如head(n = 5)。

  • 加载pandas和Seaborn库:
#Load pandas library
import pandas as pd
import seaborn as sns
  • 指定数据集的URL:
  • 从URL读取文件到pandas DataFrame:
  • 使用head函数观察数据:
diamonds_df.head()

输出结果如下:

图略

数据以列包含钻石的不同特征,例如克拉,切工质量,颜色和价格。 现在,切工,清晰度和颜色是类别变量,而x,y,z,深度,表和价格是连续变量。 类别变量将唯一的类别/名称作为值,而连续值将实数作为值。

切割,颜色和净度是具有5、7和8个唯一值的序数变量(可以通过diamonds_df.cut.nunique(),diamonds_df.color.nunique(),diamonds_df.clarity.nunique()分别获得–试试! )。 切工是切割的质量,描述为不错,良好,非常好,特级或理想; 颜色描述了从J(最差)到D(最佳)的钻石颜色。 清晰度也可以衡量钻石的清晰度,度数为I1(最差),SI1,SI2,VS1,VS2,VVS1,VVS2和IF(最佳)。

  • 使用shape函数计算DataFrame中的行数和列数:
diamonds_df.shape

输出结果:

(53940, 10)

第一个数字53940表示行数,第二个10表示列数。

  • 使用describe()汇总列以获取变量的分布,包括均值,中位数,最小值,最大值和不同的四分位数:
diamonds_df.describe()

输出结果:

图略

这适用于连续变量。 但是,对于分类变量,我们需要使用include = object参数。

  • 在describe函数内使用include = object进行分类变量(剪切,颜色,清晰度):
diamonds_df.describe(include=object)

输出结果:

图略

现在,如果您想查看列类型以及DataFrame占用多少内存该怎么办?

  • 要获取有关数据集的信息,请使用info()方法:
diamonds_df.info()

输出结果:

图略

上图显示了每一列的数据类型(float64,object,int64 …),以及DataFrame占用的内存(4.1MB)。 它还告诉DataFrame中存在的行数(53940)。

从DataFrame中选择列

添加新列到DataFrame

在DataFrame列上应用函数

从DataFrame删除列