当前位置: 首页 > 知识库问答 >
问题:

从多索引熊猫数据帧的一个级别中选择多个列[重复]

阳文轩
2023-03-14

我想知道是否可以从一个多索引级别中选择多个项目?

假设我有一个大熊猫数据帧,如下所示:

lvl_1      A             B
lvl_2      d      c      f      e
0     -1.406  0.548 -0.635  0.576
1     -0.212 -0.583  1.012 -1.377
2      0.951 -0.349 -0.477 -1.230
3      0.451 -0.168  0.949  0.545
4     -0.362 -0.855  1.676 -2.881
5      1.283  1.027  0.085 -1.282
6      0.583 -1.406  0.327 -0.146
7     -0.518 -0.480  0.139  0.851
8     -0.030 -0.630 -1.534  0.534
9      0.246 -1.558 -1.885 -1.543

我想使用dataframe的lvl_2选择特定列

尝试类似< code>df.xs(['c ',' e'],level='lvl_2 ',axis=1)的内容会导致错误:

关键错误:“e”

共有1个答案

翁心思
2023-03-14

您可以使用< code>pd。带有< code >的IndexSlice。loc,如下所示:

idx = pd.IndexSlice
df.loc[:, idx[:, ['c', 'e']]]

结果:

lvl_1      A      B
lvl_2      c      e
0      0.548  0.576
1     -0.583 -1.377
2     -0.349 -1.230
3     -0.168  0.545
4     -0.855 -2.881
5      1.027 -1.282
6     -1.406 -0.146
7     -0.480  0.851
8     -0.630  0.534
9     -1.558 -1.543
 类似资料:
  • 如果我有一个多级列索引: 我如何才能降低该指数的“a”级,因此我最终得到:

  • 问题内容: 我有一个带有列“ A”和“ B”的多索引数据框。 有没有一种方法可以通过在多索引的一列上进行过滤而不选择将索引重新设置为单列索引来选择行? 例如。 问题答案: 一种方法是使用Index方法: 在0.13,你就可以使用与参数: 注意:如果这是列MultiIndex而不是索引,则可以使用相同的技术:

  • 我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?

  • 我有一个多索引数据框,看起来像 uid tid文本 abc x t1 bcd y t2 uid 和 tid 是索引。我有一个 uid 列表,并希望获取与该列表中的 uid 相对应的行,但保留第 2 级索引值 (tid)。我想在不运行任何显式循环的情况下执行此操作。这可能吗?

  • 问题内容: 我有一个数据框,具有以下的multiindex列: 如何将列索引级别展平/合并为:“ Level1 | Level2”,例如,。等等?如果这不可能,是否有办法像我上面所做的那样不创建多索引列? 问题答案: 您可以随时更改列:

  • 我想更改我的熊猫数据框架中的一个值,我想我误解了索引的工作方式。 我得到输出 我想将df中的值0.665873更改为1。我试过了 但我得到了错误 我试图用示例数据帧复制该问题,但无济于事。 我认为问题在于,当我使用实际数据时,我得到了一系列的输出,但当我使用实践数据时,得到了一个浮点。为什么我得到的是这个系列而不是浮点0.665873?