我有一个6.6 GB(4300万行).txt文件。该文件内部大约有20列数据。
我在数据库表中存储了相同的数据,我想进行简单的抽查比较,例如2之间的行数,空值,不重复数等。我以前在Pandas中做了这种事情,但是永远不会拥有这么大的数据集。我试图弄清楚如何读取该.txt文件,或者甚至需要完全读取它来进行上述分析。
很显然,这是行不通的,因为它将无限期地运行:
data = pd.read_csv('huge_file.txt', sep=" ", header=0)
有什么建议吗?
答案 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)