Los pandas reemplazan los valores

Tengo el siguiente dataframe:

col 0 pre 1 post 2 a 3 b 4 post 5 pre 6 pre 

Quiero reemplazar todas las filas en el dataframe que no contienen ‘pre’ para convertirse en ‘nonpre’, por lo que el dataframe se ve así:

  col 0 pre 1 nonpre 2 nonpre 3 nonpre 4 nonpre 5 pre 6 pre 

Puedo hacer esto usando un diccionario y reemplazar pandas, sin embargo, solo quiero seleccionar los elementos que no son ‘pre’ y reemplazarlos con ‘nonpre’. ¿hay una mejor manera de hacerlo sin enumerar todos los valores de col posibles en un diccionario?

Siempre que se sienta cómodo con la df.loc[condition, column] que permite pandas, esto es muy fácil, simplemente haga df['col'] != 'pre' para encontrar todas las filas que deben cambiarse:

 df['col2'] = df['col'] df.loc[df['col'] != 'pre', 'col2'] = 'nonpre' df Out[7]: col col2 0 pre pre 1 post nonpre 2 a nonpre 3 b nonpre 4 post nonpre 5 pre pre 6 pre pre 
 df[df['col'].apply(lambda x: 'pre' not in x)] = 'nonpre'