使用 python2.7 中的 pandas 从 csv 文件中读取最后一个索引
reading the last index from a csv file using pandas in python2.7
我在磁盘上有一个 .csv 文件,经过格式化以便我可以轻松地将其读入 pandas DataFrame,我定期向其中写入行。我需要这个数据库有一个行索引,所以每次我向它写入新行时,我都需要知道最后写入的行的索引。
有很多方法可以做到这一点:
- 我可以将整个文件读入一个 DataFrame,追加我的行,然后再次将整个 DataFrame 打印到内存中。随着数据库的增长,这可能会变得有点慢。
- 我可以将整个索引列读入内存,然后选择最大值,然后将我的行附加到 .csv 文件。这可能会好一些,具体取决于列读取的实现方式。
我很好奇是否有一种方法可以直接获取那个单元格,而不必将一大堆额外信息读入内存。有什么建议吗?
读取整个索引列仍然需要读取和解析整个文件。
如果文件中没有字段是多行的,您可以向后扫描文件以找到第一个换行符(但要检查数据后面是否有换行符)。该换行符后面的值将是您的最后一个索引。
也可以将最后一个索引存储在另一个文件中,但您必须确保两个文件保持一致。
另一种方法是在文件的开头保留一些(固定数量的)字节并将最后一个索引值写入(就地)作为注释。但是您的解析器必须 支持 注释,或者能够跳过行。
我在磁盘上有一个 .csv 文件,经过格式化以便我可以轻松地将其读入 pandas DataFrame,我定期向其中写入行。我需要这个数据库有一个行索引,所以每次我向它写入新行时,我都需要知道最后写入的行的索引。
有很多方法可以做到这一点:
- 我可以将整个文件读入一个 DataFrame,追加我的行,然后再次将整个 DataFrame 打印到内存中。随着数据库的增长,这可能会变得有点慢。
- 我可以将整个索引列读入内存,然后选择最大值,然后将我的行附加到 .csv 文件。这可能会好一些,具体取决于列读取的实现方式。
我很好奇是否有一种方法可以直接获取那个单元格,而不必将一大堆额外信息读入内存。有什么建议吗?
读取整个索引列仍然需要读取和解析整个文件。
如果文件中没有字段是多行的,您可以向后扫描文件以找到第一个换行符(但要检查数据后面是否有换行符)。该换行符后面的值将是您的最后一个索引。
也可以将最后一个索引存储在另一个文件中,但您必须确保两个文件保持一致。
另一种方法是在文件的开头保留一些(固定数量的)字节并将最后一个索引值写入(就地)作为注释。但是您的解析器必须 支持 注释,或者能够跳过行。