[英]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.