按位置对 MultiIndex pandas DataFrame 进行切片

2024-05-04

我目前正在尝试按位置对具有三个级别的多索引数据帧进行切片。 我正在使用熊猫 19.1

Level0  Level1  Level2      Value
03-00368    A   Item111     6.9
03-00368    A   Item333     19.2
03-00368    B   Item111     9.7
03-00368    B   Item222     17.4
04-00176    C   Item110     17.4
04-00176    C   Item111     9.7
04-00246    D   Item46      12.5
04-00246    D   Item66      5.6
04-00246    D   Item99      11.2
04-00247    E   Item23      12.5
04-00247    E   Item24      5.6
04-00247    E   Item111     11.2
04-00247    F   Item23      7.9
04-00247    F   Item24      9.7
04-00247    F   Item111     12.5
04-00247    G   Item46      11.2
04-00247    G   Item66      9.7
04-00247    G   Item999     9.7
04-00247    H   Item23      11.2
04-00247    H   Item94      7.9
04-00247    H   Item111     11.2
04-00247    I   Item46      5.6
04-00247    I   Item66      12.5
04-00247    I   Item888     11.2
04-00353    J   Item66      12.5
04-00353    J   Item99      12.5
04-00354    K   Item43      12.5
04-00354    K   Item94      12.5
04-00355    L   Item54      50
04-00355    L   Item99      50

目前我可以实现:

df.loc[(slice('03-00368', '04-00361'), slice(None), slice(None)), :]

但实际上我不知道标签是什么。我只想选择前十个 0 级,所以我尝试了这个(以及许多其他类似的东西):

>>> df.iloc[(slice(0, 10), slice(None), slice(None)), :]
TypeError: unorderable types: int() >= NoneType()

最终目标是限制最终显示的行数,不破坏 Level0 索引

>>>df.iloc[(0,1,), :]
Level0   Level1 Level2      Value
03-00368    A   Item111     6.9
03-00368    A   Item333     19.2

请注意,它只返回前两行,我希望结果是:

Level0  Level1  Level2      Value
03-00368    A   Item111     6.9
03-00368    A   Item333     19.2
03-00368    B   Item111     9.7
03-00368    B   Item222     17.4
04-00176    C   Item110     17.4
04-00176    C   Item111     9.7

有一些 hacky 方法可以实现此目的,但我发布此内容是因为我想知道我做错了什么,或者为什么我不能期望能够以这种方式对 MultiIndexes 进行切片。


method 1
groupby + head

df.groupby(level=0).head(10)

method 2
不必要的冗长
IndexSlice

df.sort_index().loc[pd.IndexSlice[df.index.levels[0][:10], :, :], :]

method 3
loc

df.loc[df.index.levels[0][:10].tolist()]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按位置对 MultiIndex pandas DataFrame 进行切片 的相关文章

随机推荐

  • pexpect 和 ssh:如何在 su - root -c 之后格式化一串命令

    我正在尝试迭代服务器和密码列表来更改一组服务器上的 sshd 配置 以便我可以使用无密码 SSH 密钥通过 root 登录 运行命令 我可以在 bash 中轻松完成此操作 但我正在尝试学习 Python 并且 显然 希望放弃手动输入密码 这
  • 如何保证auto_increment数字没有间隙?

    我有一个关于自动递增的问题 这是我的表 我首先拥有它 它可以顺利地递增 id id name 1 name1 2 name2 3 name3 4 name4 5 name5 6 name6 但是当我删除一条记录并插入一条新记录时 id从7开
  • bash while 循环线程

    我有一个 while 循环读取来自 a 的行 hosts while read line do ip line check done lt hosts 我的问题是我可以使用某种方法来加快速度 或者一次在 10 个主机上运行检查 每个检查都在
  • Firebase BigQuery 导出 - 历史数据

    当我尝试在 BigQuery 上搜索事件的历史数据时 我只能找到上周的事件 我无法在任何地方找到信息是否正确 或者我做错了什么 基本上我似乎只能查询过去一周的 events YYYYMMDD 它是否正确 您是否有机会在一周前从 Fireba
  • 如何找到 Rails 中的当前路线?

    我需要知道 Rails 中过滤器中的当前路线 我怎样才能知道它是什么 我正在处理 REST 资源 但没有看到命名路由 如果您尝试对视图中的某些内容进行特殊处理 您可以使用current page as in 或者一个动作和ID 或命名路线
  • 使用 PHP 将图像中的一种颜色替换为另一种颜色

    有人可以帮我编写一个简单的脚本 使用 PHP 将图像中的特定颜色替换为另一种颜色吗 这是一个示例 颜色从绿色变为黄色 如果你的意思是在 PHP 中使用 GD 库 你应该检查一下图像过滤器 http php net manual en fun
  • Chart.JS 工具提示回调标签和标题 (v3.5)

    请注意 v2 有很多答案 这是 v3 的 我正在尝试设置工具提示label and title对于圆环图 Code Create the donut chart donut new Chart questions positivity do
  • 为一列中的多行生成不同的随机数

    我得到了一列带有整数值 n 行 的列 我想生成满足特定条件的值的正态分布范围内的随机数 我尝试使用下面的代码 但它们太慢了 df members bd df members bd apply lambda x np random norma
  • Typescript,返回元组的通用可变参数工厂函数

    在打字稿中 可以像这样创建工厂函数 并定义返回类型 function factory1
  • 如何从实体框架获取模式名称?

    我有以下代码 using WdmEntities context new WdmEntities get object models from context ObjectContext objContext IObjectContextA
  • 为什么我的 FPS 相机一劳永逸地滚动?

    如果我忽略四元数代数的肮脏细节 我想我理解了旋转和平移变换背后的数学 但仍然不明白我做错了什么 为什么我的相机一劳永逸地滚动 更具体地说 我应该如何从相机的方向 旋转矩阵 计算相机视图矩阵 我正在用 Python 编写一个简约的 3d 引擎
  • 在不可为空的列中忽略默认值

    我正在尝试使用以下 SQL alchemy 脚本在表中创建一个新的布尔型 不可空列 默认值 True from sqlalchemy import MetaData Table Boolean Column def upgrade migr
  • C# - 具有属性和节点值的 Xml 元素

    我有一些需要反序列化为对象的 Xml XML 是
  • 提交登录表单后关闭 Fancybox 模式窗口并重新加载页面

    我在 FancyBox 2 模式 iframe 窗口中打开了一个登录表单 但是 当您提交表单时 网页将在模式中打开 谁能告诉我是否以及如何使 Fancybox 模式关闭 并在提交登录表单时重新加载底层页面 这是我当前的代码 在functio
  • 计算 python 字典/数组数据结构的非空尾叶 - 递归算法?

    我正在寻找一个函数来查找一种复杂字典 数组结构的所有非空端点 我认为因为我不知道嵌套数组的数量或它们的位置 所以它必须是递归的 而我只是还没有完全理解这种思维方式 所以对于嵌套字典 x top middle nested value nes
  • IntelliJ 2017.1.2 GOLANG 调试不适用于包中的断点

    我的应用程序由一个 main go 文件和一些包组成 当在 main go 中命中断点时 IntelliJ 按预期工作 显示变量值等 但是 当在不同的包中设置断点时 除了被命中之外 不会显示任何变量 并且不会跳过 进入功能按预期工作 被击中
  • Android 设备有方形屏幕吗?

    我正在为 Android 编写一个游戏 我自己布局游戏屏幕 处理垂直和水平方向 如果宽度和高度相同 则没有做任何事情 有人知道至少有一款 Android 设备具有完美的方形屏幕分辨率吗 The MotoACTV https motoactv
  • Keras 中的 model.fit() 和 model.evaluate() 有什么区别?

    我使用 Keras 和 TensorFlow 后端来训练 CNN 模型 之间是什么model fit and model evaluate 我应该最好使用哪一种 我在用model fit 截至目前 我知道的用处model fit and m
  • 在猫鼬的整个应用程序中共享数据库连接

    使用最新的 mongoose 更新 您不能再像我以前那样进行用户建模 我需要在整个应用程序中共享相同的数据库连接 https github com LearnBoost mongoose issues 1249 https github c
  • 按位置对 MultiIndex pandas DataFrame 进行切片

    我目前正在尝试按位置对具有三个级别的多索引数据帧进行切片 我正在使用熊猫 19 1 Level0 Level1 Level2 Value 03 00368 A Item111 6 9 03 00368 A Item333 19 2 03 0