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

Pandas 熊猫-如何基于非索引列的连接选择行?,pandas,dataframe,indexing,Pandas,Dataframe,Indexing,考虑以下数据帧- In [47]: dati Out[47]: x y frame face lmark 1 NaN NaN NaN NaN 300 0.0 1.0 745.0 367.0

考虑以下数据帧-

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
我们如何选择dati['x']>629.5的行,用于在“frame”列中共享相同值的所有行。对于这个例子,我希望结果是

                      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
由于“frame”2201的“x”列,“lmark”2.0不大于629.5,因此如果每组的所有
True
s均为真,则使用进行测试,并过滤:


回答得很好-谢谢!我到处都在搜索GroupBy.transform的文档。你找到了吗?@user2309803-是的,你可以检查一下,我发现了另一个解决方案,它使用一个布尔数组,对每组“frame”
bool_数组=(dati['x']>629.5)。all(level='frame')
,然后使用它的索引访问数据帧
dati.loc[bool_数组.index[bool_数组]]
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