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

根据行中的值检索(索引,列)对

徐峰
2023-03-14

我有一个这种格式的数据框

       A    B     C      D

1      a    a     c      c 
2      c    b     a      a 
3      b    a     c      a
.
.
.

我希望使用数据帧操作获得基于行的特定值的所有(索引、列)对。所有(索引、列、行值)对都是唯一的。

我研究了这个问题:pythonic方法获取索引,column for value==1

虽然这个问题和我的问题完全一样,但这个问题的答案有点模糊,我无法根据这些答案得到我想要的。

我也看过类似的:

a) 从数据框中选择特定索引、列对

b) Python:获取与特定值匹配的行的索引

我试过这个:

req_cols = df.columns [ ( new_df == "a" ).any() ]

req_inds = (df == "a").index

我能够分别获得索引值和列值,但对如何正确组合它们感到困惑。

如果我选择行值a,我希望得到[(1, A),(1, B),(2, C),(2, D),(3, B),(3, D)]

非常感谢您的帮助。蒂亚。

共有1个答案

江宏放
2023-03-14

使用其中堆栈的一种方式:

df.where(df.eq('a')).stack().index.values

输出:

array([(1, 'A'), (1, 'B'), (2, 'C'), (2, 'D'), (3, 'B'), (3, 'D')],
  dtype=object)
 类似资料:
  • 问题内容: 使用JDBC时,我经常遇到类似 我问自己(也包括代码作者)为什么不使用标签来检索列值: 我听到的最好的解释是关于性能的。但是实际上,这使处理速度非常快吗?我不相信,尽管我从未进行过测量。我认为,即使按标签检索会稍慢一些,但它仍具有更好的可读性和灵活性。 因此,有人可以给我很好的解释,避免使用列索引而不是列标签来检索列值吗?两种方法的优缺点(也许涉及某些DBMS)是什么? 问题答案: 默

  • 问题内容: 对于这个有争议的问题,我无法得到明确的答案。 MSDN文档中提到 聚类 聚集索引根据它们的键值对数据行进行 排序 并将其存储在表或视图中。这些是索引定义中包括的列。只能有一个每个表的聚集索引,因为数据行本身可以 进行排序 在只有一个订单。 表中的数据行唯一 按排序 顺序存储的时间是表包含聚簇索引时。当表具有聚簇索引时,该表称为聚簇表。如果表没有聚集索引,则其数据行将存储在称为堆的无序结

  • 这里是MatLab新手(R2015a,MacOS10.10.5),希望能找到解决这个索引问题的方法。 我想基于一个行索引向量和一个列索引向量来更改一个大型2D矩阵的值。举一个非常简单的例子,如果我有一个3 x 2的零矩阵: 我要把A(1,1)=1,而A(2,2)=1,而A(3,1)=1,这样A现在 我想用向量来表示行和列的索引: 有没有办法做到这一点而不循环?请记住,这是一个玩具示例,需要处理非常

  • 我目前正在重构一个用Symfony 3编写的应用程序,并且严重依赖ORM,我一直在尝试获取一个包含所选列索引的对象/数组。 现在我对PHP PDO相当熟悉,我记得查询结果的基本获取如下所示 (根据我的查询)它会给我一个类似于下面的数组 在理论方面,我尝试使用几个具有水合参数的内置函数 运气不好,我最后得到了这样的东西 有人能帮我或者给我指出正确的方向吗?如何正确地解决这个问题? ----更新了问题

  • 问题内容: 这个问题已经在这里有了答案 : SELECT查询是否总是以相同顺序返回行?具有聚集索引的表 (1个答案) 6年前关闭。 对于这个有争议的问题,我无法得到明确的答案。 MSDN文档中提到 聚类 聚集索引根据它们的键值对数据行进行 排序 并将其存储在表或视图中。这些是索引定义中包括的列。只能有一个每个表的聚集索引,因为数据行本身可以 进行排序 在只有一个订单。 表中的数据行唯一 按排序 顺

  • 我有一个数组列表作为