我有一个定制格式的文本文件。我还有一个解析器,从每行提取相关列。我想一次在文件中读取一行并将它们添加到数据帧中。
问题是向数据帧追加一行的速度很慢。
这样做的正确方法是什么?
答案 0 :(得分:1)
如果文件很大,您的代码可能会受到从磁盘读取文件的时间的限制,而不是向数据帧添加行的时间,除非您有一些具体的分析数据来建议。例如,在SSD(读取吞吐量~400MB / s)上,4GB文件只需10秒即可从磁盘加载。在HDD(~40MB / s)上,这可能会达到100秒。如果是这种情况,加速加载的一种方法是将文件转换为pandas支持的格式,压缩它,然后使用read_table()的运行时de - compression
选项将其解压缩创建数据帧时的飞行。
否则,如果您确定这不是问题,那么您有这些选项,如果逐个添加不正常且文件太大而无法在内存中缓冲:
The other ways to construct a dataframe将文件解压缩到:
来自元组的DataFrame.from_records构造函数,也记录 数组
DataFrame.from_dict来自系列,数组或双语的序列
来自(键,值)对序列的