我用Python将一些浮点(一些短一些长一些)转换成字符串,得到了意外的(?)结果:
案例1
pd.options.display.float_format = '{:.2f}'.format
pd.DataFrame({'x': [12345.67]})
x
0 12345.67
案例2
^{pr2}$案例3
pd.DataFrame({'x': [1234589890878708980.67]})
x
0 1234589890878708992.00
我甚至尝试过np.float128
和{
有人能解释一下这里发生了什么,在案例2和案例3中“适当”的转换是可行的吗?在
谢谢!在
恐怕这个“问题”发生在Python(而不是pandas)方面。当您有一些即时值,如
1234589890878708980.67
时,它会被识别为float
,并立即失去精度,例如:您可以尝试类似
^{pr2}$decimal.Decimal
:编辑:
OP在评论中添加了一些问题。在
是:)
afaikpython的}参数(也可以要求pandas加载纯字符串,稍后自己转换这些值)。在
csv
读取器不应该执行任何类型转换,您将得到稍后可以自由转换的字符串。否则,如果您使用的是pandas.read_csv
,您可以尝试设置dtype
和{相关问题 更多 >
编程相关推荐