在pandas.read_csv的float_precision参数上

时间:2017-06-22 11:12:30

标签: python algorithm pandas floating-point ieee-754

这篇文章标题中的参数documentation表示:

  

float_precision 字符串,默认无

     

指定C引擎应该将哪个转换器用于浮点值。普通转换器的选项为 None ,高精度转换器的选项为,往返转换器的选项为 round_trip

我想更多地了解所提到的三种算法,最好不必深入研究源代码 1

问:这些算法是否具有我可以使用Google的名称来准确了解它们的作用以及它们之间的区别?

(另外,一方面的问题:在这种情况下究竟是什么“C引擎”?这是Pandas特定的东西,还是Python范围内的东西?以上都没有?)

1 不熟悉有问题的代码库,我希望找到相关的源代码需要很长时间。但即使假设我设法找到它,我对这种算法的体验是它们的实现是如此高度优化,并且在如此低的水平,没有一些高级描述,至少对我来说,真的很难按照正在进行的操作。

1 个答案:

答案 0 :(得分:1)

你问过实际的算法 - 我能找到的最接近的算法是: https://github.com/pandas-dev/pandas/blob/master/pandas/_libs/parsers.pyx#L492

这取自相关答案,对MaxU(Understanding pandas.read_csv() float parsing

的赞誉
Ordinary: double_converter_nogil = xstrtod
High: double_converter_nogil = precise_xstrtod
Round-Trip: double_converter_withgil = round_trip

从这里开始,你就来到了C-land。您还问过为什么pandas使用C - 关键代码路径是用Cython或C编写的。