0
点赞
收藏
分享

微信扫一扫

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位


利用pandas生成excel中数据保留两位小数及千分位

  • ​​案例​​
  • ​​解决​​
  • ​​知识点讲解​​


知识梳理不易,请尊重劳动成果,文章仅发布在CSDN网站上,在其他网站看到该博文均属于未经作者授权的恶意爬取信息

案例

在实际处理表格的过程中,有时候会需要进行指定位数以及千分位标志的保留。示例如下

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_excel

解决

import pandas as pd

data = pd.read_excel('demo.xlsx')
data['成绩'] = data['成绩'].map(lambda x:f'{x:,.2f}') #核心代码
data.to_excel('demo1.xlsx',index = False)

输出结果

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_excel_02

知识点讲解

核心就是关于字符串的格式化输出,这里的f’{}’ 就是字符串format()方法的简化,两者的功能是一致,示例如下

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_保留小数点_03


关于格式化方式中(也就是下图指的槽)具体包含哪些格式,通过绘制思维导图如下。

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_foramt_04


(1)占位符,就是传入要进行格式化字符串的变量。

s = 'demo'

print('{}'.format(s))
print(f'{s}')

输出结果如下。

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_保留小数点_05


(2) 填充字符,字符位置和填充数量。这三个变量是统一进行搭配,比如按照“=”进行长度为10的居中填充,示例如下。

s = 'demo'

print('{:=^10}'.format(s))
print(f'{s:=^10}')

输出结果如下

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_千分位_06


如果是要改变其中的内容,比如按照空格填充,指定数量为20,靠右填充,示例如下

s = 'demo'

print('{: <20}'.format(s))
print(f'{s: <20}')

输出结果如下(注意靠右填充,那么原字符串就是在左侧顶格,相反左填充就是>号,字符串显示在右侧。)

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_千分位_07


(3)千分位,就是遇三位进行添加一个逗号分隔符。

s = 1234

print('{:,}'.format(s))
print(f'{s:,}')

输出如下。

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_保留小数点_08


(4)保留指定小数位数,比如保留两位小数,代码如下。

s = 1234

print('{:,.2f}'.format(s))
print(f'{s:,.2f}')

输出结果如下(可以和之前的格式参数进行搭配使用,比如搭配千分位,但是注意前后的顺序,其中的.表示保留小数,2表示位数,f就是表示浮点数,‘.2f’也是常见的数据格式,只需要修改中间的数值就可以实现不同位数的保留)

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_千分位_09


最后就是可以尝试把6个参数都进行结合,测试输出看看结果,比如将数值进行靠右对齐(即靠左填充空格),保留两位小数和千分位,代码操作如下

s = 1234

print('{: >10,.2f}RMB'.format(s))
print(f'{s: >10,.2f}RMB')

输出结果如下(此外“槽”外面可以添加任何内容进行辅助说明,比如这里就是添加数值的单位为RMB)

【疑难杂症】利用pandas生成excel中数据保留两位小数及千分位_保留小数点_10


举报

相关推荐

0 条评论