Python 多索引从索引的第一个条目获取值

Python 多索引从索引的第一个条目获取值,python,pandas,multi-index,Python,Pandas,Multi Index,我有以下多索引数据帧: from io import StringIO import pandas as pd datastring = StringIO("""File,no,runtime,value1,value2 A,0, 0,12,34 A,0, 1,13,34 A,0, 2,23,34 A,1, 6,23,38 A,1, 7,22,38 B,0,17,15,35 B,0,18,17,35 C

我有以下多索引数据帧:

from io import StringIO
import pandas as pd
datastring = StringIO("""File,no,runtime,value1,value2
    A,0, 0,12,34
    A,0, 1,13,34
    A,0, 2,23,34
    A,1, 6,23,38
    A,1, 7,22,38
    B,0,17,15,35
    B,0,18,17,35
    C,0,34,23,32
    C,0,35,21,32
    """)    
df = pd.read_csv(datastring, sep=',')
df.set_index(['File','no',df.index], inplace=True)


>> df
               runtime  value1  value2
File   no               
A      0    0     0       12      34
            1     1       13      34
            2     2       23      34
       1    3     6       23      38
            4     7       22      38
B      0    5     17      15      35
            6     18      17      35
C      0    7     34      23      32
            8     35      21      32
我想得到的只是每个条目的第一个值,每个条目都有一个新文件和一个不同的数字

A 0 34
A 1 38
B 0 35
C 0 32
我能找到的最相似的问题是这些

但我无法从他们身上构造出解决方案。我得到的最好结果是
ix
操作,但由于技术上的值仍然存在(只是没有显示),结果是

idx = pd.IndexSlice
df.loc[idx[:,0],:]
例如,可以筛选
0
值,但仍将返回数据帧的整个剩余部分

对于手头的任务,多索引甚至是正确的工具吗?如何解决此问题?

由第一级和第二级
多索引使用:

s = df.groupby(level=[0,1])['value2'].first()
print (s)
File  no
A     0     34
      1     38
B     0     35
C     0     32
Name: value2, dtype: int64
如果需要一列
数据帧
使用一个元素
列表

df1 = df.groupby(level=[0,1])[['value2']].first()
print (df1)
         value2
File no        
A    0       34
     1       38
B    0       35
C    0       32
另一个想法是删除
3rd
levelby并使用以下内容进行过滤:


为了完整起见,我想添加另一种方法(如果没有耶斯雷尔的Ansare,我将无法找到)

这可以推广到查找任何条目,而不仅仅是第一个条目

t = df.groupby(level=[0,1])['value1'].nth(1)
请注意,选择从
value2
更改为
value1
。对于前者,
n(0)
n(1)
的结果应该是相同的

熊猫文档链接:

s = df.groupby(level=[0,1])['value2'].nth(0)
t = df.groupby(level=[0,1])['value1'].nth(1)