全部 -
我希望仅从非常大的 csv 的第一行和最后一行创建一个 pandas DataFrame。本练习的目的是能够轻松地从这些 csv 文件的第一个和最后一个条目中获取一些属性。我可以使用以下方式获取 csv 的第一行:
pd.read_csv(filename, nrows=1)
我也可以通过各种方式获取文本文件的最后一行,例如:
with open(filename) as f:
last_line = f.readlines()[-1]
然而,将这两件事放到一个 DataFrame 中让我陷入了困境。对如何最好地实现这一目标有任何见解吗?
编辑注意:我试图在不首先将所有数据加载到单个 DataFrame 的情况下完成此任务,因为我正在处理相当大的(> 15MM 行)csv 文件。
谢谢!
原文由 wrcobb 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需使用
head
和tail
和concat
。您甚至可以调整行数。结果:
调整
head
和tail
从顶部开始5行,从底部开始10行……如果您不想将整个 CSV 文件作为数据帧加载,可以使用的一种可能方法是将它们单独作为 CSV 进行处理。以下代码类似于您的方法。
结果是一样的,除了索引。针对一百万行进行了测试,并在大约一秒钟内处理完毕。
它如何扩展到 1500 万行,也许这就是你现在的球赛。所以我决定针对正好 15,728,626 行对其进行测试,结果似乎足够好。