是熊猫的数据参数.数据帧延迟评估?



Re:

类熊猫。数据帧(数据=无,索引=无,列=无, dtype=None, copy=False)[source]

和:

类方法 DataFrame.from_records(data, index=None, exclude=None, 列=无,coerce_float=假,nrows=无)[源]

数据参数是否延迟计算? 例如,如果我使用作为生成器的数据参数调用它,它会完全消耗生成器还是仅在需要时读取它。

例如,假设我有这个片段:

import csv
csvinput = (row["line"] for index, row in InputDataSet.iterrows())
rdr = csv.reader(csvinput)
OutputDataSet = pandas.DataFrame().from_records(rdr)

(请注意,我询问的不是读取CSV数据本身。 当然,可能还有其他更好的方法可以做到这一点)。

其中 InputDataSet 是另一个数据帧。 代码工作正常,但如果急切地评估行集,则可能会出现可伸缩性问题。 想象一下,InputDataSet 正在从某个源(可能是文件或网站,或者谁知道什么)检索 csv 格式的行。 理想情况下(对我来说,也就是说),对 InputDataSet 数据帧的 iterrows() 调用将被延迟计算 - 根据需要一次计算一行。 同样适用于 OutpuDataSet。 如果from_records方法是懒惰的,那就太好了。 然后我可以有另一个部分懒惰地读取输出数据集。

这个问题是在SQL Server 2017中使用Python支持时出现的。 对于大型行集,对于此类代码,急切求值将是一个问题。

刚刚做了一个非常简单的测试:

>>> g = ((x, x+1) for x in range(5))
>>> d = pandas.DataFrame.from_records(g)
>>> next(g)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

所以,这对我来说,from_records方法是急切的,这是令人失望的。

请参阅原始帖子中的测试用例。 方法急切

最新更新