以百分比形式打印特定列

Printing specific columns as a percentage

我有多个索引数据框,我想将两列的值转换为百分比值。

                             Capacity\nMWh  Day-Ahead\nMWh  Intraday\nMWh  UEVM\nMWh  ...  Cost Per. MW\n(with Imp.)\n$/MWh  Cost Per. MW\n(w/o Imp.)\n$/MWh  Intraday\nMape  Day-Ahead\nMape
Power Plants Date                                                                     ...
powerplant1  2020 January              3.6          446.40         492.70     482.50  ...                              0.05                             0.32            0.04             0.10
             2020 February             0.0            0.00           0.00       0.00  ...                              0.00                             0.00            0.00             0.00
             2020 March                0.0            0.00           0.00       0.00  ...                              0.00                             0.00            0.00             0.00
             2020 April                0.0            0.00           0.00       0.00  ...                              0.00                             0.00            0.00             0.00

I used apply('{:0%}'.format):

nested_df[['Intraday\nMape', 'Day-Ahead\nMape']] = \
            nested_df[['Intraday\nMape', 'Day-Ahead\nMape']].apply('{:.0%}'.format)

但是我得到了这个错误:

TypeError: ('unsupported format string passed to Series.__format__', 'occurred at index Intraday\nMape')

我该如何解决?

使用DataFrame.applymap:

nested_df[['Intraday\nMape', 'Day-Ahead\nMape']] = \
        nested_df[['Intraday\nMape', 'Day-Ahead\nMape']].applymap('{:.0%}'.format)