Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace values inside column in pandas

I am trying to replace the values of 'Period' Column in this data frame:

     Year  Period        y          yhat                Contas Resultado 
0   2017       1  1.251556e+00  1.251556e+00               Devoluções   
1   2017       2  2.109900e-01  2.109899e-01               Devoluções   
2   2017       3  1.186015e+00  1.186015e+00               Devoluções   
3   2017       4  2.530208e-01  2.530208e-01               Devoluções   
4   2017       5  2.305744e-01  2.305745e-01               Devoluções   
5   2017       6  2.367768e-01  2.367768e-01               Devoluções   
6   2017       7  2.509670e-01  2.509670e-01               Devoluções   
7   2017       8  2.525350e-01  2.525350e-01               Devoluções   
8   2017       9  2.509663e-01  2.509663e-01               Devoluções   
9   2017      10  2.204747e-01  2.204747e-01               Devoluções   
10  2017      11  2.262774e-01  2.262774e-01               Devoluções   
11  2017      12  2.373548e-01  2.373548e-01               Devoluções   
12  2018       1  1.155845e+00  1.155845e+00               Devoluções   
...

Using this command:

repl_dict = {
    '01': 'M1', '02': 'M2', '03': 'M3', '04': 'M4', '05': 'M5', '06': 'M6',
    '07': 'M7', '08': 'M8', '09':'M9', '10':'M10', '11':'M11', '12':'M12'
}

results['Period'].replace(repl_dict)

However I got the following error:

TypeError: Cannot compare types 'ndarray(dtype=int64)' and 'str'
like image 385
Cesar Avatar asked Jun 25 '26 12:06

Cesar


1 Answers

Python 3.6+ f-strings

df.assign(Period=[f'M{i}' for i in df.Period])

    Year Period         y      yhat Contas Resultado
0   2017     M1  1.251556  1.251556       Devoluções
1   2017     M2  0.210990  0.210990       Devoluções
2   2017     M3  1.186015  1.186015       Devoluções
3   2017     M4  0.253021  0.253021       Devoluções
4   2017     M5  0.230574  0.230574       Devoluções
5   2017     M6  0.236777  0.236777       Devoluções
6   2017     M7  0.250967  0.250967       Devoluções
7   2017     M8  0.252535  0.252535       Devoluções
8   2017     M9  0.250966  0.250966       Devoluções
9   2017    M10  0.220475  0.220475       Devoluções
10  2017    M11  0.226277  0.226277       Devoluções
11  2017    M12  0.237355  0.237355       Devoluções
12  2018     M1  1.155845  1.155845       Devoluções

str.format function

df.assign(Period=df.Period.map('M{}'.format))

    Year Period         y      yhat Contas Resultado
0   2017     M1  1.251556  1.251556       Devoluções
1   2017     M2  0.210990  0.210990       Devoluções
2   2017     M3  1.186015  1.186015       Devoluções
3   2017     M4  0.253021  0.253021       Devoluções
4   2017     M5  0.230574  0.230574       Devoluções
5   2017     M6  0.236777  0.236777       Devoluções
6   2017     M7  0.250967  0.250967       Devoluções
7   2017     M8  0.252535  0.252535       Devoluções
8   2017     M9  0.250966  0.250966       Devoluções
9   2017    M10  0.220475  0.220475       Devoluções
10  2017    M11  0.226277  0.226277       Devoluções
11  2017    M12  0.237355  0.237355       Devoluções
12  2018     M1  1.155845  1.155845       Devoluções
like image 180
piRSquared Avatar answered Jun 28 '26 01:06

piRSquared



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!