使用 Pandas MultiIndex 选择多行分层 DataFrame

2024-01-11

我有一个具有 3 个级别的 MultiIndex 的 Pandas DataFrame。假设我有以下数据

df = pd.DataFrame({'ColB': {('A1', 'B1', 1): 'cb1',
  ('A1', 'B1', 2): 'cb2',
  ('A1', 'B2', 1): 'cb3',
  ('A1', 'B2', 2): 'cb4',
  ('A2', 'B1', 1): 'cb5',
  ('A2', 'B1', 2): 'cb6',
  ('A2', 'B2', 1): 'cb7',
  ('A2', 'B2', 2): 'cb8'},
 'colA': {('A1', 'B1', 1): 'ca1',
  ('A1', 'B1', 2): 'ca2',
  ('A1', 'B2', 1): 'ca3',
  ('A1', 'B2', 2): 'ca4',
  ('A2', 'B1', 1): 'ca5',
  ('A2', 'B1', 2): 'ca6',
  ('A2', 'B2', 1): 'ca7',
  ('A2', 'B2', 2): 'ca8'}})

        ColB colA
A1 B1 1  cb1  ca1
      2  cb2  ca2
   B2 1  cb3  ca3
      2  cb4  ca4
A2 B1 1  cb5  ca5
      2  cb6  ca6
   B2 1  cb7  ca7
      2  cb8  ca8

现在,我有一个 MultiIndex 对象,其中包含前两个级别的索引,例如

MultiIndex([('A1', 'B2'),
            ('A2', 'B1')],
           )

我想使用该 MultiIndex 来选择与该 MultiIndex 对应的所有行,包括级别 3 中的所有索引,例如,

        ColB colA
A1 B2 1  cb3  ca3
      2  cb4  ca4
A2 B1 1  cb5  ca5
      2  cb6  ca6

我怎样才能做到这一点?我已经寻找答案几个小时了,但我仍然不知道。谢谢。


Use Index.isin http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Index.isin.html删除第三级MultiIndex.droplevel http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.MultiIndex.droplevel.html并过滤boolean indexing http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#boolean-indexing:

df = df[df.index.droplevel(2).isin(mux)]
print (df)
        ColB colA
A1 B2 1  cb3  ca3
      2  cb4  ca4
A2 B1 1  cb5  ca5
      2  cb6  ca6

它适用于任何index:

mux = pd.MultiIndex.from_tuples([('A1', 'B1'),('A2', 'B2')])

df = df[df.index.droplevel(2).isin(mux)]
print (df)
        ColB colA
A1 B1 1  cb1  ca1
      2  cb2  ca2
A2 B2 1  cb7  ca7
      2  cb8  ca8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pandas MultiIndex 选择多行分层 DataFrame 的相关文章

  • 如何将经度和纬度转换为国家或城市?

    我需要将经度和纬度坐标转换为国家或城市 python中有这样的例子吗 提前致谢 我使用谷歌的API from urllib2 import urlopen import json def getplace lat lon url http
  • 使用 python 通过搜索端点从 Spotify API 获取曲目

    因此 我尝试使用 API 的搜索端点进行搜索 从而从 Spotify API 获取曲目 请参阅文档 https developer spotify com documentation web api reference search sea
  • 垂直线 axvline 在 matplotlib 的 loglog 图中绘制位于错误位置的线

    我在使用 axvline 在 matplotlib 的 loglog 图中绘制垂直线时遇到问题 第一个问题是垂直线没有出现在正确的位置 第二个问题 可能相关的是 当我放大或平移绘图时 垂直线只是保持在原位 并且没有通过平移 滑动绘图 或放大
  • 如何编写高效的配对算法?

    我需要一种算法的帮助 该算法可以有效地将人们分组 并确保以前的配对不会重复 例如 假设我们有 10 位候选人 candidates 0 1 2 3 4 5 6 7 8 9 并假设我们有一个先前匹配的字典 这样每个键值对即candidate
  • 将 stdout 重定向到 Python 中的文件? [复制]

    这个问题在这里已经有答案了 如何将 stdout 重定向到 Python 中的任意文件 当长时间运行的 Python 脚本 例如 Web 应用程序 从 ssh 会话内启动并处于后台 并且 ssh 会话关闭时 应用程序将引发 IOError
  • 使用 K 均值聚类 OpenCV 进行交通标志分割

    I used K Means Clustering to perform segmentation on this traffic sign as shown below 这些是我的代码 读取图像并模糊 img cv imread 000
  • python 语言环境奇怪的错误。这究竟是怎么回事?

    所以今天我升级到了 bazaar 2 0 2 我开始收到这条消息 顺便说一句 我在雪豹上 bzr warning unknown locale UTF 8 Could not determine what text encoding to
  • 如何通过facebook-sdk python api获取用户帖子?

    我使用 facebook jssdk 授权我的应用程序读取用户个人资料和用户帖子 FB login function response scope user status user likes user photos user videos
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • 散景中的时间序列流

    我想在散景中绘制实时时间序列 我只想在每次更新时绘制新的数据点 我怎样才能做到这一点 散景网站上有一个动画情节的示例 但它每次都需要重新绘制整个图片 另外 我正在寻找一个简单的示例 我可以在其中逐点绘制时间序列的实时绘图 散景效果0 11
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • Python:使用列表创建二叉搜索树

    我的代码的目标是从 txt 文件中获取每个单独的单词并将其放入列表中 然后使用该列表创建二叉搜索树来计算每个单词的频率 并按字母顺序打印每个单词及其频率 中的每个单词只能包含字母 数字 或 我无法用我的初学者编程知识来做的部分是使用我拥有的
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • 对 pandas 数据框中的每一列应用函数

    我如何以更多的熊猫方式编写以下函数 def calculate df columns mean self df means for column in df columns columns tolist cleaned data self
  • 带有整数的 np.sqrt 和 where 条件返回错误结果

    当我将 numpy sqrt 方法应用于带有 a 的整数数组时 我得到了奇怪的结果where健康 状况 见下文 对于整数 a np array 1 4 9 np sqrt a where a gt 5 Out 3 array 0 0 5 3
  • 如何在 Python 中解析损坏的 XML?

    我无法影响的服务器发送的 XML 非常损坏 具体来说 Unicode WHITE STAR 将被编码为 UTF 8 E2 98 86 然后使用 Latin 1 转换为 HTML 实体表 我得到的是 acirc 98 86 9 个字节 位于声
  • 使用Python的timeit获取“全局名称'foo'未定义”

    我想知道执行一条Python语句需要多少时间 所以我上网查了一下 发现标准库提供了一个名为timeit http docs python org library timeit html旨在做到这一点 import timeit def fo
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • python subprocess.call() 找不到 Windows Bash.exe

    我有一个程序 它从另一个在 Linux 的新 Windows 子系统上运行的程序获取输出 我编写了一个从 Windows 系统运行的 python 程序 但将使用 python subprocess 模块执行 linux 程序 如果这令人困
  • 哪一段代码性能更好?

    我正在审查一些代码 用于将一些文本转换为MD5 Hash 效果很好 它用于创建一个MD5Hhash for a 头像 头像 这里是 static MD5CryptoServiceProvider md5CryptoServiceProvid
  • django 从连接到任何网络的任何计算机访问本地主机

    我有一个 Django 项目 正在 localhost 8000 上运行 并且运行良好 现在我希望它可以从连接到其他网络的任何计算机进行访问 做了一些谷歌 我发现我可以通过从路由器设置端口转发来做到这一点 我有一个 tplink 路由器 我
  • 寻找具有选择条件的最便宜的物品组合

    假设我有 3 个特定商品的卖家 每个卖家存储的此类物品数量不同 该商品也有不同的价格 Name Price Units in storage Supplier 1 17 1 Unit Supplier 2 18 3 Units Suppli
  • AWS TimeStream:超过一天的记录将被拒​​绝

    我在AWS TimeStream中创建了一个数据库表 其内存保留期为7天 但是 当我尝试上传 3 天前的数据时 它将被拒绝 似乎只接受超过 24 小时的数据 2020 10 26T13 43 33 244 01 00 Rejected a
  • 如何从 python 脚本在 azure devops 管道中生成合理的错误消息

    我在构建管道中使用 python 对拉取请求运行一些检查 当检查失败时 我使用sys exit reason 退出脚本 这可行 但输出没有帮助 PR 页面中显示的内容如下 进程 C hostedtoolcache windows Pytho
  • JavaScript 复制到剪贴板不起作用

    我的脚本中有一个函数给我一个错误 该功能的目的是通过 onClick 事件从静态面板 不是文本框或输入 复制文本 未捕获的类型错误 copyText select 不是函数 我想要的是让用户能够单击文本并将其复制到剪贴板 也许你可以提供更好
  • 当现有的 Excel 文件在桌面上**打开**时,是否可以写入该文件?

    我正在创建一个将数据写入现有 Excel 文件的代码 仅当文件关闭时它才会读 写文件 如果我尝试在桌面上打开该文件时写入该文件 它将不会更改或保存该文档 当代码运行之前或运行期间打开 Excel 文件时 我也无法关闭工作簿 使用 close
  • from ... import * with __import__ 函数 [重复]

    这个问题在这里已经有答案了 可能的重复 from import x using import https stackoverflow com questions 8408373 from import x using import 一个人如
  • 如何让 Redshift/Postgresql LAG 窗口函数有选择地排除记录?

    我在 Redshift 中有这个表 我正在尝试为以下数据集编写查询 对于诸如 row 3 之类的 续订成功 且前面有 子成功 的项目 我想将它们标记为 is first renewal true 但它们前面可能有任意数量的 RENEWAL
  • 词袋训练样本

    我已经实施了 Bag Of Words 一切都很顺利 但是 我对一些步骤以及如何实施感到困惑 我可以创建弓描述符作为词袋中创建样本的最后一步 如此处所示bowDE compute img keypoints bow descriptor 问
  • 找不到 Gmail 的 Developer.gserviceaccount

    我正在阅读有关设置对谷歌服务器发布请求的访问权限的谷歌文档 将 OAuth 2 0 用于服务器到服务器应用程序 https developers google com identity protocols OAuth2ServiceAcco
  • 为什么谷歌地理编码器给出的地图搜索结果不同?

    例如 使用以下命令搜索 36 High Street Clapham London SW4 7UR geocoder http gmaps samples googlecode com svn trunk geocoder singlege
  • 使用 css / php styleswitcher 在移动视图和标准视图之间来回切换

    有问题的网站在这里 http autisticadovcacy uniongraphics org http autisticadovcacy uniongraphics org 我最初设计这个时使用一个 css 文件作为默认 打印和移动样
  • 任务“app:transformClassesWithInstantRunForDebug”执行失败

    如果我想运行我的应用程序 我会收到此错误 错误 任务 app transformClassesWithInstantRunForDebug 执行失败 java lang NullPointerException 无错误消息 我的 Gradl
  • hardwareAccelerated="true" 与部分绘图

    我花了几天时间才弄清楚原因invalidate Rect dirty 无法在较新的设备上设置正确的剪辑 问题是hardwareAccelerated true 默认设置 当我设置这个hardwareAccelerated false 我把正
  • javascript / d3 - 将参数传递给函数

    我正在使用一个名为 d3 的 JavaScript 库来对对象执行一些动画 在每个动画结束时 我想调用一个函数 该函数从调用动画的对象传递数据 但它不起作用 我该如何实现这个目标 这是我的代码 function selectArcs d3
  • mod_fastcgi空闲超时不起作用

    我正在使用 Apache mod fastcgi php fpm 我正在尝试解析大文件并在 php 脚本中将 max execution time 设置为 0 但脚本在 30 秒后失败 并在错误日志中显示消息 FastCGI 与服务器 us
  • C 的最小哈希函数?

    我不能使用 boost hash 因为我必须坚持使用 C 而不能使用 C 但是 我需要对大量 10K 到 100k 令牌字符串 5 到 40 字节长度 进行哈希处理 以便在这些字符串中进行搜索速度最快 MD5 SHA1 或任何长哈希函数对于
  • 使用 Pandas MultiIndex 选择多行分层 DataFrame

    我有一个具有 3 个级别的 MultiIndex 的 Pandas DataFrame 假设我有以下数据 df pd DataFrame ColB A1 B1 1 cb1 A1 B1 2 cb2 A1 B2 1 cb3 A1 B2 2 cb