青鸟飞扬教育:数据帧的块读取和写入

数据帧的块读取和写入

分块,正如其名所示,意味着以,嗯,的形式处理文件。你按部分读取(或写入)文件。如果你使用 Zarr(见第 8.4 节)或 Dask(见第十章),你肯定会处理分块。

在这里,我们将回到我们信任的出租车示例。我们将以块的形式将文件从 CSV 转换为 Parquet,尽管文件足够小,在大多数计算机上我们可以在内存中完成这个操作,但让我们假设我们在一个内存受限的机器上,并且无法在内存中加载整个文件。

我们将使用 pandas 读取 CSV 文件,并使用 Arrow 写入 Parquet 版本。我们可以用 Arrow 完成所有操作,这将更高效,但我们想展示 pandas 分块接口

① 类型将是 pandas.io.parsers.TextFileReader。

② 每个块将是一个数据帧。

我们只需要将 chunksize 参数添加到 read_csv 中。你将不会从 read_csv 获得一个数据帧,而是一个块生成器。然后每个块将是一个数据帧,最大行数为 100 万行。

我们现在将进行适当的转换。首先,我们需要重新打开文件。我们已经遍历了所有块一次,所以我们需要回到开始

我们还需要指定一些列的数据类型;某些列的类型可能会从一块数据变化到另一块数据。这种情况在整数列中尤为常见,尤其是那些包含空值的列。当存在空值时,类型会被提升为float,因为在 pandas 中无法用整数来表示空值。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容