带有分层索引的选择-获取数据帧的子集

伊达达

我有一个代表矩阵的数据框。它由行号和列号索引,如下所示:

arrays = [[1,1,1,2,2,2,3,3,3],[1,2,3,1,2,3,1,2,3]]
tuples = zip(*arrays)
index = MultiIndex.from_tuples(tuples, names=['row', 'col'])
df = DataFrame([100,99,98,97,96,95,94,93,92],index,columns=['score'])


score
row col 
1   1    100
    2    99
    3    98
2   1    97
    2    96
    3    95
3   1    94
    2    93
    3    92

现在,我试图弄清楚如何仅选择第1行的cols 1和3,这意味着将返回一些代码:

score
row col 
1   1    100
    3    98

当然,我不是要寻找明确选择1和3的代码,而是寻找更一般的情况,在这种情况下,我将传递0级索引列表和1级索引列表,并获取适当的子集。

我试过了:

k1 = 1
k2 = [1,3]
df.ix[k1,k2]

这引发一个错误。

这确实有效:

df.ix[k1].ix[k2]

但仅当k1为标量时。如果k1=[1,3]未检索到正确的子集,则因为返回数据帧仍使用0级索引进行索引。

它看起来像作者的意图。我看不出为什么df.ix[k1,k2](其中k1和k2是标量或向量或混合)不起作用的原因。我想念什么吗?

亨利

怎么样reindex()

df.reindex([1,2], level=0).reindex([1,3], level=1)

对于更通用的解决方案,这是我之前回答过的类似问题:

如何使用ix索引到熊猫多索引

我在这里复制代码:

import numpy as np
def ms(df, *args):
    idx = df.index
    for i, values in enumerate(args):
        if values is not None:
            if np.isscalar(values):
                values = [values]
            idx = idx.reindex(values, level=i)[0]
    return df.ix[idx]

ms(df, [1,2], [1, 3])

但我认为unstack()矩阵更好:

m = df.score.unstack()
m.loc[[1,2],[1,3]]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据帧由索引的数据帧子集

来自分类Dev

带有动态数据崩溃的SwiftUI分层选择器

来自分类Dev

提取并处理数据帧的子集后如何获取原始行索引

来自分类Dev

二维numpy数组中带有索引的Pandas数据帧的有效子集

来自分类Dev

获取计数的数据帧的索引

来自分类Dev

选择数据帧子集时,NA的意外行

来自分类Dev

如何使用R中的向量选择数据帧的子集

来自分类Dev

获取带有动态项目的UIAlertAction的选择索引

来自分类Dev

R:具有最大值的子集/组数据帧?

来自分类Dev

具有逻辑值矩阵的子集数据帧

来自分类Dev

根据用户选择的索引对 r 中的数据帧中的列进行子集化

来自分类Dev

Android:带有分层数据的 Recyclerview

来自分类Dev

R数据帧中的分层索引

来自分类Dev

按日期获取子集数据帧

来自分类Dev

Pandas 数据帧索引在索引数据帧的子集时导致问题。如何删除索引或防止错误发生?

来自分类Dev

如何在多索引数据帧中选择数据并使结果数据帧具有适当的索引

来自分类Dev

使用数据表单单元格选择对 R 中的数据帧进行子集化

来自分类Dev

多索引 Pandas 数据帧上的布尔索引以仅子集具有空值的行

来自分类Dev

从带有索引日期时间的熊猫数据帧创建JSON

来自分类Dev

从带有 timedelta 索引的 Pandas 数据帧绘图

来自分类Dev

如何使用字符串作为数据帧的子集索引?

来自分类Dev

Pandas,如何使用 iterrow()、itertuple()、索引访问数据帧的子集并找到峰值、趋势变化

来自分类Dev

通过基于两列随机选择值来子集数据帧

来自分类Dev

通过随机选择的参与者ID子集纵向数据帧

来自分类Dev

如何在R中使用grep选择精确匹配来对数据帧进行子集化

来自分类Dev

如何使用选择输入在 r Shiny 中对数据帧进行子集化?

来自分类Dev

带有d3的嵌套(分层)数据

来自分类Dev

带有回归的ARIMA用于分层数据预测

来自分类Dev

带有分层数据模板的树视图 IsSelected

Related 相关文章

  1. 1

    数据帧由索引的数据帧子集

  2. 2

    带有动态数据崩溃的SwiftUI分层选择器

  3. 3

    提取并处理数据帧的子集后如何获取原始行索引

  4. 4

    二维numpy数组中带有索引的Pandas数据帧的有效子集

  5. 5

    获取计数的数据帧的索引

  6. 6

    选择数据帧子集时,NA的意外行

  7. 7

    如何使用R中的向量选择数据帧的子集

  8. 8

    获取带有动态项目的UIAlertAction的选择索引

  9. 9

    R:具有最大值的子集/组数据帧?

  10. 10

    具有逻辑值矩阵的子集数据帧

  11. 11

    根据用户选择的索引对 r 中的数据帧中的列进行子集化

  12. 12

    Android:带有分层数据的 Recyclerview

  13. 13

    R数据帧中的分层索引

  14. 14

    按日期获取子集数据帧

  15. 15

    Pandas 数据帧索引在索引数据帧的子集时导致问题。如何删除索引或防止错误发生?

  16. 16

    如何在多索引数据帧中选择数据并使结果数据帧具有适当的索引

  17. 17

    使用数据表单单元格选择对 R 中的数据帧进行子集化

  18. 18

    多索引 Pandas 数据帧上的布尔索引以仅子集具有空值的行

  19. 19

    从带有索引日期时间的熊猫数据帧创建JSON

  20. 20

    从带有 timedelta 索引的 Pandas 数据帧绘图

  21. 21

    如何使用字符串作为数据帧的子集索引?

  22. 22

    Pandas,如何使用 iterrow()、itertuple()、索引访问数据帧的子集并找到峰值、趋势变化

  23. 23

    通过基于两列随机选择值来子集数据帧

  24. 24

    通过随机选择的参与者ID子集纵向数据帧

  25. 25

    如何在R中使用grep选择精确匹配来对数据帧进行子集化

  26. 26

    如何使用选择输入在 r Shiny 中对数据帧进行子集化?

  27. 27

    带有d3的嵌套(分层)数据

  28. 28

    带有回归的ARIMA用于分层数据预测

  29. 29

    带有分层数据模板的树视图 IsSelected

热门标签

归档