2

我在磁盘上有一个 .csv 文件,经过格式化,以便我可以轻松地将其读入 pandas DataFrame,我会定期向其中写入行。我需要这个数据库有一个行索引,所以每次我写一个新行时,我都需要知道最后一行的索引。

有很多方法可以做到这一点:

  • 我可以将整个文件读入 DataFrame,附加我的行,然后再次将整个 DataFrame 打印到内存中。随着数据库的增长,这可能会变得有点慢。
  • 我可以将整个索引列读入内存,然后选择最大值,然后将我的行附加到 .csv 文件中。这可能会好一些,具体取决于列读取的实现方式。

我很好奇是否有一种方法可以直接获取一个单元格,而无需将一大堆额外信息读入内存。有什么建议么?

4

1 回答 1

1

读取整个索引列仍然需要读取和解析整个文件。

如果文件中没有字段是多行的,您可以向后扫描文件以找到第一个换行符(但要检查数据后面是否有换行符)。该换行符后面的值将是您的最后一个索引。

将最后一个索引存储在另一个文件中也是可能的,但您必须确保两个文件保持一致。

另一种方法是在文件的开头保留一些(固定数量的)字节并将最后一个索引值写入(就地)那里作为注释。但是您的解析器必须支持注释,或者能够跳过行。

于 2016-01-28T14:33:39.970 回答