Divide todas las filas en un dataframe de pandas por una fila específica

Tengo un dataframe de pandas como abajo:

Sample_name C14-Cer_mean C16-Cer_mean C18-Cer_mean C18:1-Cer_mean 0 1 1 0.124749 0.285659 35.302029 8.173144 1 1 10 0.332976 0.656197 39.220933 6.446620 2 1 13 0.227423 0.272440 26.866943 5.763723 3 1 14 0.128359 0.604903 29.848169 6.801633 4 1 5 0.204000 0.242652 21.354158 4.637632 5 1 6 0.122697 0.412868 25.168258 5.866785 6 1 9 0.161679 0.569781 28.707720 6.525267 7 Blank 0.408713 0.526573 0.531430 0.111025 

Quiero obtener un dataframe donde los valores de todas las filas se hayan dividido entre los valores de la fila con Sample_name “Blank” (normalizando a la muestra “Blank”). ¿Cómo puedo lograr esto en los pandas?

Puedes seleccionar todas las filas y dividir el df usando loc y luego llamar a div y pasar la última fila usando iloc[-1] :

 In [58]: df.loc[:,'C14-Cer_mean':] = df.loc[:,'C14-Cer_mean':].div(df.iloc[-1]['C14-Cer_mean':]) df Out[58]: Sample_name C14-Cer_mean C16-Cer_mean C18-Cer_mean C18:1-Cer_mean index 0 1 1 0.305224 0.542487 66.4284 73.6153 1 1 10 0.814694 1.24617 73.8026 58.0646 2 1 13 0.556437 0.517383 50.5559 51.9137 3 1 14 0.314057 1.14875 56.1658 61.2622 4 1 5 0.499128 0.460814 40.1824 41.7711 5 1 6 0.300203 0.784066 47.3595 52.842 6 1 9 0.395581 1.08206 54.0198 58.773 7 Blank 1 1 1 1 
 df.loc[:,'C14-Cer_mean':] = df.loc[:,'C14-Cer_mean':].div(df.iloc[-1]['C14-Cer_mean':]) Sample_name C14-Cer_mean C16-Cer_mean C18-Cer_mean C18:1-Cer_mean 0 1 1 0.305224 0.542487 66.4284 73.6153 1 1 10 0.814694 1.24617 73.8026 58.0646 2 1 13 0.556437 0.517383 50.5559 51.9137 3 1 14 0.314057 1.14875 56.1658 61.2622 4 1 5 0.499128 0.460814 40.1824 41.7711 5 1 6 0.300203 0.784066 47.3595 52.842 6 1 9 0.395581 1.08206 54.0198 58.773 7 Blank 1 1 1 1