如何用Pandas结合Xlsxwriter实现Excel千分位用点分隔
用XlsxWriter设置Excel数字千分位分隔符为点(.)且不修改Pandas数值
只需修改XlsxWriter的数字格式字符串,就能在不改动Pandas原始数值的前提下,让Excel中的数字用点作为千分位分隔符。
修改后的完整代码:
import pandas as pd df = pd.DataFrame({"a": [1000.12, 123123123.23]}) writer = pd.ExcelWriter('example.xlsx', engine='xlsxwriter') df.to_excel(writer, sheet_name='Sheet1', index=False) workbook = writer.book worksheet = writer.sheets['Sheet1'] # 格式说明:整数部分每三位用点分隔,小数部分保留两位用逗号分隔 # 若只需显示整数,改用格式 '#.###' 即可 FORMAT = '#.###,##' num_format = workbook.add_format({'num_format': FORMAT}) worksheet.set_column('A:A', None, num_format) writer.save()
关键说明:
- Excel自定义格式中,
#.###,##实现了千分位用点(.)、小数分隔用逗号(,)的显示效果:1000.12 会显示为1.000,12,123123123.23 显示为123.123.123,23。 - 如果只需要展示整数部分的千分位(如示例中的
1.000、123.123.123),将格式字符串改为#.###即可,此时会自动舍去小数部分的显示(但Pandas内的原始数值不变)。 - 这种操作仅修改Excel单元格的显示格式,完全不会影响DataFrame中存储的原始数值。
内容的提问来源于stack exchange,提问作者DaveR
相关产品推荐
相关产品推荐

