我有一个定制格式的文本文件。我也有一个解析器从每一行中提取相关的列。我想一次读入文件中的一行,并将它们添加到数据框中。如何解析文件并生成数据帧
问题是将一行添加到数据帧很慢。
这样做的正确方法是什么?
我有一个定制格式的文本文件。我也有一个解析器从每一行中提取相关的列。我想一次读入文件中的一行,并将它们添加到数据框中。如何解析文件并生成数据帧
问题是将一行添加到数据帧很慢。
这样做的正确方法是什么?
如果文件很大,您的代码可能受到从磁盘读取文件的时间的限制,而不是将时间添加到数据帧的时间,除非您有一些具体的配置文件数据来建议。例如,在SSD上(读取吞吐量〜400MB/s),4GB文件仅需从磁盘加载10秒。在HDD(〜40MB/s)上,这可能会长达100秒。如果是这种情况,加速加载的一种方法是将文件转换为熊猫支持的格式,将其压缩,然后使用read_table()的运行时选项read_table()在创建数据帧时实时解压缩。
否则,如果您确信这是真的不是问题,你有这些选择,如果逐一加入并不确定,该文件是太大,无法在内存中缓冲:
The other ways to construct a dataframe从数据结构将文件解压到:从元组
DataFrame.from_records构造,也记录 阵列
DataFrame.from_dict从系列阵列的类型的字典或类型的字典
DataFrame.from_items来自(键,值)对的序列
是什么让你说,附加到数据帧是慢?如果文件很大,我希望即使逐个添加条目,您的代码最有可能在从磁盘读取时受到限制? –
@eleanora,我会建议你以完全相同的格式发布你的文本文件的样本,所以我们可以给你一个合格的答案。通常将单行添加到数据框非常缓慢。 – MaxU