分享

Pandas设置数字格式,小数位数、百分号、千位分隔符

 北方的白桦林 2019-02-06

在我们制作各种报表快要结束的时候都需要对数字格式进行设置,增加报表的可读性。

>>> df_grouped
	weekday	comment	view
0	0.0	12.621010	2682.943838
1	1.0	10.967018	2062.483289
2	2.0	10.963464	3131.965268
3	3.0	9.035825	2402.893852
4	4.0	10.286993	2809.965598
5	5.0	9.322897	2120.946729
6	6.0	11.069197	2812.551997
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

设置小数位数,四舍五入

使用自定义函数可以做保留小数位数。

>>> df_grouped['comment'].map(lambda x:('%.2f')%x)
0    12.62
1    10.97
2    10.96
3     9.04
4    10.29
5     9.32
6    11.07
Name: comment, dtype: object
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

但是经过自定义函数处理过后的数据已经不再是float。如需后续计算的话需要先做变换。

百分数

这里利用自定义函数将每个数字进行format格式处理,处理后数据从float格式转换成了带2位小数和百分号的对象。

>>> df_grouped['comment'].map(lambda x:format(x,'.2%'))
0    1262.10%
1    1096.70%
2    1096.35%
3     903.58%
4    1028.70%
5     932.29%
6    1106.92%
Name: comment, dtype: object
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

设置千位分隔符

处理后依然是对象格式。设置千位分割符请小心操作,因为对电脑来说,这些已经不再是数字了,而是数字和逗号组成的字符串,要再变成数值型就麻烦了。

>>> df_grouped['view'].map(lambda x:format(x,','))
0    2,682.9438383838383
1    2,062.4832893579596
2     3,131.965268380695
3     2,402.893852277753
4    2,809.9655984919887
5     2,120.946728971963
6    2,812.5519968366943
Name: view, dtype: object
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多