Один из способов - перебрать все строки, используя itertuples()
.Помните, что это вычислительно дорого.
1 - Создайте список, который проверяет ваше состояние для каждой строки, используя itertuples ()
condition_list = []
for row in df.itertuples():
if (row.Cat1_L2 != None) or (row.Cat2_L3 != None):
condition_list.append(1)
else:
condition_list.append(0)
2.Преобразовать список в серии панд
condition_series = pd.Series(condition_list)
3.Добавить серию к оригиналу df
df['condition_column'] = condition_series.values
4.Фильтр df
df_new = df[df.condition_column == 1]
del df_new['condition_column']