基于Python中其他列的条件筛选

基于Python中其他列的条件筛选,python,pandas,Python,Pandas,如果Item包含mm,我想按Order\u id过滤数据 Order_id Item 22565 Id20 da1 23493 Id20 mm 42094 Id20 nm 42095 Id20 be2 42857 Id24 mm 43061 Id24 ba1 43529 Id26 da1 例如,Id20和Id24都包含mm,但不包含Id26,因此预

如果
Item
包含
mm
,我想按
Order\u id
过滤数据

        Order_id    Item
22565   Id20        da1
23493   Id20        mm
42094   Id20        nm
42095   Id20        be2
42857   Id24        mm
43061   Id24        ba1
43529   Id26        da1
例如,
Id20
Id24
都包含
mm
,但不包含
Id26
,因此预期输出:

        Order_id    Item
22565   Id20        da1
23493   Id20        mm
42094   Id20        nm
42095   Id20        be2
42857   Id24        mm
43061   Id24        ba1
最好的方法是什么?

使用:

df1 = df[df['Item'].eq('mm').groupby(df['Order_id']).transform('any')]
或:



嗨,耶兹雷尔,谢谢你的解决方案,但我认为这与我需要的不同。使用这两种方法返回的数据中,
Order\u id
不包含
mm
@nilsinelabore-Hmm的
项,因此如果filter
df2=df1[df1['Item'].eq('mm')]
它不会返回
mm
行?jezrael抱歉,我弄错了,它工作了,谢谢!
df1 = df[df['Order_id'].isin(df.loc[df['Item'].eq('mm'), 'Order_id'])]
print (df1)
      Order_id Item
22565     Id20  da1
23493     Id20   mm
42094     Id20   nm
42095     Id20  be2
42857     Id24   mm
43061     Id24  ba1