Как правило, вы хотите избегать циклического перебора DataFrame всякий раз, когда можете, поэтому, если вы хотите найти все эти строки, использование lo c с логическим индексом может помочь вам найти их за один цикл, тогда вы можете скопировать Вы нашли в отдельном DataFrame. Затем просто объедините их.
p_2 = P.loc[P['b']=='n'].copy(deep=True)
P = pd.concat([P,P2],ignore_index=True)