繁体   English   中英

根据熊猫中的列值从多索引中检索索引

[英]Retrieving index from multi-index based on column values in Pandas

说我有这样一个表:

  Attr   |  Foo    |  Bar     
Name|Val | 1  | 2  | 3  | 4
-----------------------------
OFO |1   | F  | T  | F  | F
    |2   | T  | F  | F  | T 
-----------------------------
ARB |5   | T  | T  | F  | F
    |6   | F  | F  | F  | T

我的行由索引控制,该索引的级别为0 = {OFO,ARB},级别为1 = {1,2,5,6},列的级别为0 = {Foo,Bar},级别为1 = {1,2, 3,4}我希望能够从每个T条目中提取相应的行和列索引,因此返回值将是:

((Foo,1),(OFO,1))

我正在努力提出一个好的解决方案。

您可以从以下内容开始:

df.stack([0,1]).reset_index(name='value').query('value == True')

输出:

   level_0  level_1 level_2  level_3 value
3      OFO        1     Foo        2  True
5      OFO        2     Bar        4  True
6      OFO        2     Foo        1  True
10     ARB        5     Foo        1  True
11     ARB        5     Foo        2  True
13     ARB        6     Bar        4  True

这是我的解决方案:

def getIndex(table):
    mask = (pd.notnull(table))
    i, j = np.where(mask)
    return list(zip(table.index[i],table.columns[j]))

在此问题的帮助下: 在Pandas数据框中获取选定值的行和列标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM