pandas reemplazan múltiples valores de una columna

En una columna, los niveles de riesgo quiero reemplazar Pequeño con 1, Medio con 5 y Alto con 15. Intenté:

dfm.replace({'risk':{'Small': '1'}},{'risk':{'Medium': '5'}},{'risk':{'High': '15'}}) 

Pero solo el médium fue reemplazado. Qué está mal ?

Tu formato de reemplazo está desactivado

 In [21]: df = pd.DataFrame({'a':['Small', 'Medium', 'High']}) In [22]: df Out[22]: a 0 Small 1 Medium 2 High [3 rows x 1 columns] In [23]: df.replace({'a' : { 'Medium' : 2, 'Small' : 1, 'High' : 3 }}) Out[23]: a 0 1 1 2 2 3 [3 rows x 1 columns] 

Podrías definir un dictado y llamar al map

 In [256]: df = pd.DataFrame({'a':['Small', 'Medium', 'High']}) df Out[256]: a 0 Small 1 Medium 2 High [3 rows x 1 columns] In [258]: vals_to_replace = {'Small':'1', 'Medium':'5', 'High':'15'} df['a'] = df['a'].map(vals_to_replace) df Out[258]: a 0 1 1 5 2 15 [3 rows x 1 columns] In [279]: val1 = [1,5,15] df['risk'].update(pd.Series(val1)) df Out[279]: risk 0 1 1 5 2 15 [3 rows x 1 columns] 
 In [123]: import pandas as pd In [124]: state_df = pd.DataFrame({'state':['Small', 'Medium', 'High', 'Small', 'High']}) In [125]: state_df Out[125]: state 0 Small 1 Medium 2 High 3 Small 4 High In [126]: replace_values = {'Small' : 1, 'Medium' : 2, 'High' : 3 } In [127]: state_df = state_df.replace({"state": replace_values}) In [128]: state_df Out[128]: state 0 1 1 2 2 3 3 1 4 3 

Cadena reemplazar cada cadena (pequeña, mediana, alta) por la nueva cadena (1,5,15) \

Si dfm es el nombre del dataframe, columna es el nombre de la columna.

 dfm.column = dfm.column.str.replace('Small', '1') dfm.column = dfm.column.str.replace('Medium', '5') dfm.column = dfm.column.str.replace('High', '15') 

Puedes usar la siguiente solución para resolver tu problema:

 dfm.column.str.replace('Small', '1').str.replace('Medium', '5').str.replace('High', '15')