分层索引是什么?

分层索引的方法创建结构化组织关系数据。这些层次索引或MultiIndexes高度灵活和提供一系列选项当执行复杂的数据查询。

分层索引是熊猫的功能之一,Python编程语言的软件库。熊猫的名字来自“面板数据”这个词,统计术语四维数据模型显示随时间的变化。熊猫库包含多个工具,支持详细的数据查询。

分层索引是如何工作的呢?

熊猫DataFrames图书馆与它指的是什么。这些都是类似于一个关系数据库表,所以你可以很容易地将一个关系表导入DataFrame。CSV、JSON和Excel数据也适合创建DataFrame的来源。

DataFrames与行和列的二维结构。每一行有一个整数范围内指数所分配的熊猫。一个典型的DataFrame可能看起来像这样:

范围EmployeeID的名字RoleType状态110001年一个阿尔瓦雷斯管理TX210002年B本森管理CA310003年C克里斯蒂经理TX410004年D杜安经理CA510005年E爱迪生执行TX610006年F富兰克林执行CA

在这个数据中,我们可以看到一些逻辑分组,由州和角色类型。可以通过运行一些加入组织这些数据,条件或分组功能。大熊猫包括groupby()函数用于这个目的。

然而,我们可以使用分层索引创建新索引DataFrame,使用数据值。熊猫,是一行代码:

dfset_index([“RoleType”,“状态”),原地=真正的)

这将创建MultiIndexes DataFrame。如果我们对数据排序,我们看到的是这样的:

状态RoleTypeEmployeeID的名字TX管理10001年一个阿尔瓦雷斯经理10003年C克里斯蒂执行10005年E爱迪生CA管理10002年B本森经理10004年D杜安执行10006年F富兰克林

在这个例子中,州和RoleType结合创建索引,不仅组织数据,但也能使你更快的排序。

更重要的是,现在这些标识符显示清晰的逻辑行之间的关系。在上面的示例中,我们可以看到每个办公室的内部结构,这意味着我们可以运行查询关于每个办公室没有任何类型的参数查询。

实现MultiIndexes的好处,您将需要对数据排序之前运行任何查询。否则,熊猫将返回数据的副本,而不是一个视图。它还将提供一个性能警告。

分层索引的优点是什么?

在熊猫,MultiIndexes可以帮助提供优化的查询和维护关系。MultiIndexes本身数据值,熊猫处理他们在查询,但是所有的内容层次索引视图中可显示的结果。

一个例子是在熊猫系列。一系列只是一列的数据,相当于在Excel中选择单个列或者运行一个SQL查询从表中选择列。

当您试图检索包含MultiIndexes系列,如:

打印(df(“EmployeeID”]。(5))

你收到一个输出看起来像这样:

状态RoleTypeEmployeeIDTX管理10001年经理10003年执行10005年CA管理10002年经理10004年

这样做的原因是,分层索引关系牢不可破,所以所有查询返回的值用于索引的目的。这可能是非常有用的在这种情况下,你想对分组数据执行复杂的查询。而不是试图维持的关系在你查询,你可以把它们作为原子实体。

在代码中使用分层索引

熊猫是一种软件图书馆为了便于数据分析。它扩展了Python的功能,帮助开发人员这一目的。

例如,.loc功能可以帮助识别特定的索引值相匹配的行。通过分层索引,我们可以传递多个参数.loc。因此,在上面的示例中,代码看起来像这样:

ds。loc [(“TX”、“经理”):]

这将返回匹配的值。在这种情况下,这将是:

EmployeeID名字

10003 C克里斯蒂

你也可以寻找使用部分索引值。例如:

ds。loc [(TX,切片(没有):]

将返回一个列表的所有员工在德克萨斯州。这种额外的语法允许更大的灵活性在创建查询,覆盖大,复杂的DataFrames。

另一个有用的功能是横截面,熊猫的方式。cross-slice允许我们检索匹配的值。例如,我们可以把一个员工从样本数据库使用这个查询:

ds。xs (“Alvarex”,级别= '名称')

这些都是一些基本的例子代码,并利用内DataFrames熊猫。更多细节,请参考熊猫的文档

其他的实现层次索引

熊猫提供MultiIndexing的为数不多的几个现成的实现。对于其他实现,开发人员通常依靠手工编码的解决方案。

例如,一些解决方案在R中使用数组来提供一个版本的分级索引。数组只持有一个模式,但这可以包括存储一个列表。在此基础上,R程序员可以代码将值范围索引的数组,这些是可以组织起来的,以分层的方式。

然而,熊猫方法的一个最大的优点是,你可以MultiIndexes之前执行任何查询。这意味着没有一个MultiIndexing查询运行时处理开销。从资源的角度来看,它不是完全不同于任何其他类型的查询。

熊猫通常用于分析数据立方体,这是相同的数据库的多个视图。MultiIndexing是非常有用的在这种情况下,作为分组有助于许多不同类型的查询。然而,分层索引也是一个解决方案的任何其他类型的查询支持的熊猫。

的术语表

一个数据集成技术的术语指南。

Baidu
map