Izquierda justificar valores de cadena en un marco de datos de pandas

Entonces, tengo un DataFrame con 180000+ valores y necesito (1) reemplazar duplicados y ciertos valores en celdas por fila y (2) reorganizar. Aquí está mi DataFrame, df:

    key   sellyr  brand  makrc  item1  item2  item3  item4  item5  item6
0   da12  2013    imp    apt    furi   apt    nan    nan    nan    nan
1   da32  2013    sa     rye    rye    app    nan    nan    nan    nan 
2   da14  2013    sa     pro    not    pro    pan    fan    nan    nan
........

los valores nan representan np.nan. Y la cadena prohibida es 'no'.

Entonces, lo que necesito hacer es verificar las columnas item1 ~ 6 reemplazar cadenas que están contenidas en la columna makrc con nan. Además, también quiero reemplazar 'not's' con nan's. Después de reemplazar las cadenas a np.nan, necesito reorganizar el elemento 1 ~ 6 a la izquierda para justificar los datos que no son nan a la celda vacía más a la izquierda, como se muestra a continuación, (salida esperada):

    key   sellyr  brand  makrc  item1  item2  item3  item4  item5  item6
0   da12  2013    imp    apt    furi   nan    nan    nan    nan    nan
1   da32  2013    sa     rye    app    nan    nan    nan    nan    nan 
2   da14  2013    sa     pro    pan    fan    nan    nan    nan    nan
........

Entonces, como puede ver en un primer índice, eliminé la cadena apt en item2 y la cambié a np.nan porque la misma cadena está en la columna makrc. En el índice 1, eliminé centeno y lo reemplacé por np.nan. Pero esta vez, reorganicé la cadena 'app' de item2 a item1 porque los valores de np.nan deberían ir después de los valores. En el índice 2, he reemplazado pro y no desde que necesito reemplazar cada 'not'string en las columnas del elemento para np.nan. También he reorganizado los artículos.

Intenté combinar todas las columnas de elementos como una lista y reemplazarla, pero hay algunas filas con solo elementos np.nan. ¿Pueden recomendarme un proceso ideal para resolver mi problema? Muchas gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta