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

在非常大的文本文件上运行简单分析-Python,python,pandas,Python,Pandas,我有一个6.6GB(4300万行).txt文件。文件中大约有20列数据 我在DB表中存储了相同的数据,我想做简单的抽查比较,比如行计数、空计数、不同计数等。我以前在熊猫身上做过这样的事情,但从来没有用过这么大的数据集。我试图弄清楚如何读入这个.txt文件,或者我是否需要完全读入它来进行上述分析 显然,这是行不通的,因为它将无限期地运行: data = pd.read_csv('huge_file.txt', sep=" ", header=0) 有什么建议吗 使用类似以下内容: chunksi

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

我在DB表中存储了相同的数据,我想做简单的抽查比较,比如行计数、空计数、不同计数等。我以前在熊猫身上做过这样的事情,但从来没有用过这么大的数据集。我试图弄清楚如何读入这个.txt文件,或者我是否需要完全读入它来进行上述分析

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

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

有什么建议吗

使用类似以下内容:

chunksize = 10 ** 6
for chunk in pd.read_csv('huge_file.txt', chunksize=chunksize):
    do_cool_stuff(chunk)
现在它将按块读取您的文件。
希望有帮助

使用类似以下内容:

chunksize = 10 ** 6
for chunk in pd.read_csv('huge_file.txt', chunksize=chunksize):
    do_cool_stuff(chunk)
现在它将按块读取您的文件。
希望有帮助

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

import pandas as pd
import sqlite3

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

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

import pandas as pd
import sqlite3

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

根据您想要对数据执行的操作,有几个选项。您始终可以使用
read\u csv
nrows
skiprows
参数使用pandas读入部分数据。根据您想对数据执行的操作,有几个选项。使用
read\u csv
nrows
skiprows
参数,您可以随时使用pandas读取部分数据。谢谢,我来试一试谢谢,我来试一试