Python 如何编辑交叉表的输出以显示小数点后2位的百分比?

Python 如何编辑交叉表的输出以显示小数点后2位的百分比?,python,dataframe,formatting,percentage,crosstab,Python,Dataframe,Formatting,Percentage,Crosstab,作为交叉表的一部分,我知道了如何重新排序索引,但现在我被困在如何格式化交叉表输出以向第二个显示数据上。小数点 我从这个代码开始 pd.crosstab(data['One'],data['two'], margins=True).apply(lambda r: r/len(data)*100,axis = 1) 输出看起来像这样 A B C All B 10.0000 40.0000 50.0000 C 40.0000 10

作为交叉表的一部分,我知道了如何重新排序索引,但现在我被困在如何格式化交叉表输出以向第二个显示数据上。小数点

我从这个代码开始

pd.crosstab(data['One'],data['two'], margins=True).apply(lambda r: r/len(data)*100,axis = 1)
输出看起来像这样

A          B         C       All
B    10.0000   40.0000   50.0000
C    40.0000   10.0000   50.0000
All  50.0000   50.0000   100.0000  
但是我在找类似的东西

A         B         C       All
B    10.00%    40.00%    50.00% 
C    40.00%    10.00%    50.00% 
All  50.00%    50.00%    100.00%   
关于如何格式化我的数据有什么想法吗? 再次感谢。

你可以做到

pd.options.display.float_format = '{:.2f}%'.format

然后,如果您显示数据帧,它在小数点后只有两位数字,带%号。

您的lambda是该行的主要执行者,因此我做了一些更改

pd.crosstab(数据['One'],数据['two'],边距=True)。应用(lambda r:{.2f})。格式((r/len(数据)*100))+'%,轴=1)