熊猫多索引的好处?

熊猫多索引的好处?,第1张

熊猫多索引的好处?

在pandas 0.4版本中引入了分级索引(也称为“多级”索引)。

这为一些非常复杂的数据分析和 *** 作打开了大门,尤其是在处理高维数据时。本质上,例如,它使您能够有效地存储和处理二维表格结构(Dataframe)中的任意高维数据。

试想像这样构造一个数据框

MultiIndex

import pandas as pdimport numpy as npnp.arrays = [['one','one','one','two','two','two'],[1,2,3,1,2,3]]df = pd.Dataframe(np.random.randn(6,2),index=pd.MultiIndex.from_tuples(list(zip(*np.arrays))),columns=['A','B'])df  # This is the dataframe we have generated          A         Bone 1 -0.732470 -0.313871    2 -0.031109 -2.068794    3  1.520652  0.471764two 1 -0.101713 -1.204458    2  0.958008 -0.455419    3 -0.191702 -0.915983

df
只是二维的数据结构

df.ndim2

但是我们可以想象一下,将输出视为3维数据结构。

  • one
    1
    数据
    -0.732470 -0.313871
  • one
    2
    数据
    -0.031109 -2.068794
  • one
    3
    数据
    1.520652 0.471764

又名:“以二维表格结构有效存储和处理任意高维数据”

这不仅是“漂亮的展示”。由于我们现在有了一个层次索引,因此它具有易于检索数据的优点。

例如。

In [44]: df.ix["one"]Out[44]:A         B1 -0.732470 -0.3138712 -0.031109 -2.0687943  1.520652  0.471764

只会为属于“一个”的一组数据提供一个新的数据帧。

通过执行以下 *** 作,我们可以进一步缩小数据选择范围:-

In [45]: df.ix["one"].ix[1]Out[45]: A   -0.732470B   -0.313871Name: 1

当然,如果我们想要一个特定的值,这是一个例子:

In [46]: df.ix["one"].ix[1]["A"]Out[46]: -0.73247029752040727

因此,如果我们有更多的索引(除了上面示例中显示的2个索引之外),我们基本上可以向下钻取并选择我们真正感兴趣的数据集,而无需

groupby

我们甚至可以从数据框中获取横截面(行或列)。

按行:

In [47]: df.xs('one')Out[47]:A         B1 -0.732470 -0.3138712 -0.031109 -2.0687943  1.520652  0.471764

按列:-

In [48]: df.xs('B', axis=1)Out[48]: one  1   -0.313871     2   -2.068794     3    0.471764two  1   -1.204458     2   -0.455419     3   -0.915983Name: B


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5643954.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存