这篇文章标题中的参数documentation表示:
float_precision :字符串,默认无
指定C引擎应该将哪个转换器用于浮点值。普通转换器的选项为 None ,高精度转换器的选项为高,往返转换器的选项为 round_trip 。
我想更多地了解所提到的三种算法,最好不必深入研究源代码 1 。
问:这些算法是否具有我可以使用Google的名称来准确了解它们的作用以及它们之间的区别?
(另外,一方面的问题:在这种情况下究竟是什么“C引擎”?这是Pandas特定的东西,还是Python范围内的东西?以上都没有?)
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编写的。