Найти строки, которые имеют значение одного столбца в качестве подстроки в другом столбце вместе с другими условиями ИЛИ в pandas

#python #pandas

#python #pandas

Вопрос:

 df = pd.DataFrame({'A':[1,2,3,4], 'B':['abc', 'def', 'pqr', 'xyz'], 'C':['a', 'h', 'm', 'z'], 'D':['g', 'h', 'i', 'j']})
  

Я хочу напечатать строки, в которых C в качестве подстроки в B ИЛИ C равно D
Что-то вроде:

 result_df = mydf[(mydf['C']==mydf['D']) | (mydf.B.str.contains(mydf.C, na = False))]
  

Любая помощь приветствуется!

Ответ №1:

Вы можете сделать это, только пройдя по столбцам B и C:

 print (df.loc[[y in x for x, y in zip(df["B"], df["C"])]|df["C"].eq(df["D"])])

   A    B  C  D
0  1  abc  a  g
1  2  def  h  h
3  4  xyz  z  j