如何编辑交叉表的输出以显示小数点后第二位的百分比?
How do I edit the output of my crosstab to show a percentage to the 2nd decimal point?
我的交叉表的一部分,我想出了如何重新排序索引,但现在我被困在如何格式化我的交叉表输出以将数据显示到第二个。小数点.
我是从这段代码开始的
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(data['One'],data['two'], margins=True).apply(lambda r:"{:.2f}".format((r/len(data)*100))+'%',axis = 1)
我的交叉表的一部分,我想出了如何重新排序索引,但现在我被困在如何格式化我的交叉表输出以将数据显示到第二个。小数点.
我是从这段代码开始的
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(data['One'],data['two'], margins=True).apply(lambda r:"{:.2f}".format((r/len(data)*100))+'%',axis = 1)