Pandas Python:为什么 np.round() 3.601626 到 2 dp 返回 3.6



我正在尝试将 df 中的一些浮点数四舍五入到 2 dp,但 10 的所有倍数都四舍五入为 1 dp,所以 3.60 将是 3.6,12.40 将是 12.4...

我有一个 df:

Values           A         B         C         D
Question                                                                                                    
A2         4.08642  4.144279  3.601626  3.983852

我的代码

np.round(df,2)

输出

Values        A     B    C     D
Question                                                                                                    
A2         4.09  4.14  3.6  3.98

预期产出

Values        A     B     C     D
Question                                                                                                    
A2         4.09  4.14  3.60  3.98

如何强制 NP.round 将"3.6"显示为"3.60"?

仅供参考 - 我不想使用字符串格式化程序,因为我必须对这些数字进行四舍五入。

问题不在于舍入,而在于熊猫显示数据帧的方式。

您可以像这样设置float_format

pd.options.display.float_format = '${:,.2f}'.format

如本答案中更详细地解释的那样。

您可以使用字符串格式化器,然后使用十进制函数表单库十进制再次返回数字:

示例代码:

import decimal
print(decimal.Decimal("{:.2f}".format(3.6)))

设置pandas display.float_format选项的另一种方法:

>>> pd.set_option('float_format', '{:,.2f}'.format)

最新更新