在很大的文本文件上运行简单分析-Python

时间:2018-07-13 18:55:48

标签: python pandas

我有一个6.6 GB(4300万行).txt文件。该文件内部大约有20列数据。

我在数据库表中存储了相同的数据,我想进行简单的抽查比较,例如2之间的行数,空值,不重复数等。我以前在Pandas中做了这种事情,但是永远不会拥有这么大的数据集。我试图弄清楚如何读取该.txt文件,或者甚至需要完全读取它来进行上述分析。

很显然,这是行不通的,因为它将无限期地运行:

data = pd.read_csv('huge_file.txt', sep=" ", header=0)

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

使用类似这样的内容:

chunksize = 10 ** 6
for chunk in pd.read_csv('huge_file.txt', chunksize=chunksize):
    do_cool_stuff(chunk)

现在它将按块读取文件。 希望对您有帮助!

答案 1 :(得分:1)

不确定它对您的情况是否有帮助,但是您可以将该csv上传到它自己的sqlite数据库中,并通过一个连接来读取它,该连接的速度要快得多。

import pandas as pd
import sqlite3

conn = sqlite3.connect("DB_PATH")
df= pd.read_sql(YOUR_QUERY, conn)