查找多索引数据框的每个级别的最大值

Dav*_*sby 4 python pandas

我有一个看起来像这样的DataFrame:

        data
a   b
1   1   0.1
    2   0.2
    3   0.3
2   1   0.5
    2   0.6
    3   0.7
Run Code Online (Sandbox Code Playgroud)

我想找到每个级别a忽略b级别的最小值,所以作为输出我正在寻找类似的东西

a   min
1   0.1
2   0.5
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 6

最简单的是使用min参数level=0:

print (df.data.min(level=0).reset_index(name='min'))
   a  min
0  1  0.1
1  2  0.5
Run Code Online (Sandbox Code Playgroud)

如果需要输出为df且只有一列df:

print (df.min(level=0))
   data
a      
1   0.1
2   0.5
Run Code Online (Sandbox Code Playgroud)

或者groupby通过汇总的第一级min:

print (df.groupby(level=0).data.min().reset_index(name='min'))
   a  min
0  1  0.1
1  2  0.5
Run Code Online (Sandbox Code Playgroud)