Skip to main content
 首页 » 编程设计

python之打印并写入格式正确的数字

2025年05月04日16qq号

虽然能够在控制台中打印小数位数,但在尝试使用格式正确的数字写入 csv 时,我面临的挑战要大得多。在下面的代码中,我以某种方式设法将整数除以“000”,并将结果放入 csv 中,但我无法摆脱额外的“.,”。 for 循环确实是一个艰巨的挑战。也许,有人可以告诉我如何破解这个谜题。

查看下面的代码字符串。应该看起来像,无论是在控制台中打印还是在我正在写入的 csv 文件中:

23,400,344.567, 54,363,744.678, 56,789,117.456, 4,132,454.987

输入:

import pandas as pd 
 
def insert_comma(s): 
     str='' 
     count=0 
     for n in reversed(s): 
          str += n 
          count+=1 
          if count == 3: 
               str += ',' 
               count=0 
 
     return ''.join([i for i in reversed(str)][1:]) 
 
 
d = {'Quarters' : ['Quarter1','Quarter2','Quarter3','Quarter4'], 
 'Revenue':[23400344.567, 54363744.678, 56789117.456, 4132454.987]} 
df=pd.DataFrame(d) 
 
df['Revenue']=df.apply(lambda x: insert_comma(str(x['Revenue'] / 1000)), axis=1) 
 
# pd.options.display.float_format = '{:.0f}'.format 
 
df.to_csv("C:\\Users\\jcst\\Desktop\\Private\\Python data\\new8.csv", sep=";") 
 
# round to two decimal places in python pandas 
 
# .options.display.float_format = '{:.0f}'.format 
print(df) 

输出

   Quarters      Revenue 
0  Quarter1  234,00.,344 
1  Quarter2  543,63.,744 
2  Quarter3  567,89.,117 
3  Quarter4    1,32.,454 

请您参考如下方法:

你可以使用它。使用格式字符串为 Revenue 列中的所有行使用逗号和 3 个小数位。

df['Revenue']=df['Revenue'].apply('{0:,.3f}'.format) 

结果:

   Quarters         Revenue 
0  Quarter1  23,400,344.567 
1  Quarter2  54,363,744.678 
2  Quarter3  56,789,117.456 
3  Quarter4   4,132,454.987