熊猫-如何基于非索引列的连接选择行?

时间:2020-03-09 05:43:23

标签: pandas dataframe indexing

考虑以下DataFrame-

In [47]: dati                                                                                        
Out[47]: 
                      x      y
frame face lmark              
1     NaN  NaN      NaN    NaN
300   0.0  1.0    745.0  367.0
           2.0    753.0  411.0
           3.0    759.0  455.0
2201  0.0  1.0    634.0  395.0
           2.0    629.0  439.0
           3.0    630.0  486.0

对于所有行,我们如何在'frame'列中选择dati ['x']> 629.5的行。对于此示例,我希望结果为

                      x      y
frame face lmark              
300   0.0  1.0    745.0  367.0
           2.0    753.0  411.0
           3.0    759.0  455.0

因为“框架” 2201的列“ x”,“ lmark” 2.0不大于629.5

1 个答案:

答案 0 :(得分:2)

GroupBy.transformGroupBy.all一起使用以测试每个组是否所有True并在boolean indexing中进行过滤:

df = dat[(dat['x'] > 629.5).groupby(level=0).transform('all')]
print (df)
                      x      y
frame face lmark              
300   0.0  1.0    745.0  367.0
           2.0    753.0  411.0
           3.0    759.0  455.0