1

我有一个包含超过 600,000 个条目的文件。它基本上包含:

user1 choice1
user1 choice2
user2 choice3
user2 choice1
.
.
.
.
user400000 choice60

当我尝试通过常用方法(如下所示)创建字典时,idle 停止响应。

d = {}
with open("file.txt") as f:
    for line in f:
       (key, val) = line.split()
       d[key] = val

我想从这个大的条目文件中轻松快速地操作列表/字典。获得它的最有效方法是什么?

4

1 回答 1

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. 以下类似 dict 的访问s是立即的。

于 2013-03-19T12:20:15.950 回答