#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