首页 > 解决方案 > Python数字格式

问题描述

我对 Python 很陌生。我有一个名为数量列的 DataFrame。我可以使用df['QTY'].

我需要如下格式值

0.00 -> 0

12.0 -> 12

100.00 -> 100

12.00 -> 12

12 -> 12

123.34 -> 123.34

我已经尝试过,每个人都在举例 xx.yy并展示格式化,但我将组合xx.00,xx.yy并且xx只有。

我的问题与在没有多余零的情况下在 Python 中格式化浮点数不同

它在那里将 3.140 转换为 3.14。在我的情况下 3.140 必须转换为 3.140 并且 3.00 必须转换为 3

解决方案:

我最终如下

for row in df.iterrows():
if row['QTY'].is_integer():
   df['QTY'] = "{:,}".format(int(row['QTY']))
else:
   df['QTY'] = "{:,}".format(float(row['QTY']))  

现在我的 df['QTY'] 具有格式良好的所有值。

标签: python-3.xformat

解决方案


>>> b = 123.34
>>> print (("%%12.%df" % (0 if b == round(b) else 2)) % b).strip()

推荐阅读