替换pandas中列内的值

Ces*_*sar 3 python datetime pandas

我试图替换此数据框中'Period'列的值:

     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   
...
Run Code Online (Sandbox Code Playgroud)

使用此命令:

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)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

TypeError: Cannot compare types 'ndarray(dtype=int64)' and 'str'
Run Code Online (Sandbox Code Playgroud)

piR*_*red 5

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
Run Code Online (Sandbox Code Playgroud)

str.format 功能

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
Run Code Online (Sandbox Code Playgroud)