我有一个超过600,000个条目的文件。它基本上包含:
user1 choice1
user1 choice2
user2 choice3
user2 choice1
.
.
.
.
user400000 choice60
当我尝试通过常规方法创建字典时(如下所示),空闲停止响应。
d = {}
with open("file.txt") as f:
for line in f:
(key, val) = line.split()
d[key] = val
我希望从这个大型条目文件中轻松快速地操作列表/字典。最有效的方法是什么?
答案 0 :(得分:1)
pandas
允许轻松操作此数据量。您的数据是一系列user
标签,其标量数据点与之关联。
import pandas as pd
s = pd.read_csv('file.txt', sep=' ', header=None, index_col=0, squeeze=True)
该指令要求pandas
将文件数据加载到Series对象中:
sep=' '
)header=None
)index_col=0
)pandas
会构建一个DataFrame
对象,但如果它包含一列数据,我们可以要求Series
代替(squeeze=True
) s
是一个Series
对象,用于我们现在可用于访问数据的用户标签:
In [37]: s.head()
Out[37]:
0
user0 104106
user1 31024
user2 82993
user3 211414
user4 499070
Name: 1
In [38]: s['user3']
Out[38]: 211414
如果'file.txt'
为600000行,则需要大约一秒钟才能加载s
。 <{1}}上的类似dict的访问是立竿见影的。