首页 > 解决方案 > 如何使用 iloc 获取二级中两个的索引值以减去 A 和 B

问题描述

如何在第一个级别中获得两个的索引值以减去每个级别的 A 和 B

bar  two     -0.673690  0.113648


 first  sec      A         B
bar     one     -0.424972  0.567020  
        two     -0.673690  0.113648 
baz     one      0.404705  0.577046 
        two     -0.370647 -1.157892 
foo     one      1.075770 -0.109050  
        two      0.357021 -0.674600 
qux     one     -1.294524  0.413738 
        two     -0.013960 -0.362543`

标签: pythonpandasnumpy-ndarray

解决方案


我认为需要通过locwith选择tuple,返回一行DataFrame添加[]

df = df.loc[[('bar','two')]]
print (df)
                 A         B
first sec                   
bar   two -0.67369  0.113648

或为Series

s = df.loc[('bar','two')]
#alternative
#s = df.xs(('bar','two'))
print (s)
A    -0.67369
B    0.113648
Name: (bar, two), dtype: object

但是如果需要tuple使用位置Index.get_loc

i = df.index.get_loc(('bar','two'))
print (i)
1

推荐阅读