pandas replace multiple values one column pandas replace multiple values one column pandas pandas

pandas replace multiple values one column


Your replace format is off

In [21]: df = pd.DataFrame({'a':['Small', 'Medium', 'High']})In [22]: dfOut[22]:         a0   Small1  Medium2    High[3 rows x 1 columns]In [23]: df.replace({'a' : { 'Medium' : 2, 'Small' : 1, 'High' : 3 }})Out[23]:    a0  11  22  3[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_dfOut[125]:     state0   Small1  Medium2    High3   Small4    HighIn [126]: replace_values = {'Small' : 1, 'Medium' : 2, 'High' : 3 }                                                                                          In [127]: state_df = state_df.replace({"state": replace_values})                                                                                             In [128]: state_dfOut[128]:    state0      11      22      33      14      3


You could define a dict and call map

In [256]:df = pd.DataFrame({'a':['Small', 'Medium', 'High']})dfOut[256]:        a0   Small1  Medium2    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)dfOut[258]:    a0   11   52  15[3 rows x 1 columns]In [279]:val1 = [1,5,15]df['risk'].update(pd.Series(val1))dfOut[279]:  risk0    11    52   15[3 rows x 1 columns]