Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用dask从大型csv文件进行查询的速度非常慢_Python_Python 3.x_Pandas_Csv_Dask - Fatal编程技术网

Python 使用dask从大型csv文件进行查询的速度非常慢

Python 使用dask从大型csv文件进行查询的速度非常慢,python,python-3.x,pandas,csv,dask,Python,Python 3.x,Pandas,Csv,Dask,我只想从一个包含1亿行的大型csv文件中查询特定用户ID的行,该文件有多个包含用户ID的列。 此文件中大约有400000个用户ID 由于csv文件太大,无法进入内存,我使用dask编写了程序,如下所示 import dask.dataframe as dd ddf = dd.read_csv('large.csv') df = ddf[ddf['user_id'] == 'fja8947'] df = df.compute() 但是,下面执行查询的程序的执行时间大约需要4分钟,这非常慢 如何改

我只想从一个包含1亿行的大型csv文件中查询特定用户ID的行,该文件有多个包含用户ID的列。 此文件中大约有400000个用户ID

由于csv文件太大,无法进入内存,我使用dask编写了程序,如下所示

import dask.dataframe as dd
ddf = dd.read_csv('large.csv')
df = ddf[ddf['user_id'] == 'fja8947']
df = df.compute()
但是,下面执行查询的程序的执行时间大约需要4分钟,这非常慢


如何改进程序或更改文件格式,以便更快地查询?

您是反复要求不同的用户ID,还是只需访问一次数据源,然后使用一个用户ID?如果您只是偶尔获得新ID,您可以修改您的read-in,使其仅读取具有感兴趣的用户ID的行,并将内容保存在字典或类似的工具中,而不是使用dask将“所有内容”放入并过滤。基本上,阅读时进行过滤。你的另一个选择是咬紧牙关,自学一点关于数据库的知识,这对于这种长度的数据来说是一个更好的设置,如果索引正确,可以快速查询。谢谢你的评论。我想访问所有用户ID并处理这些行。我想对所有用户ID进行大量查询,而不是偶尔获取一个用户ID。