Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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 从大量条目创建可编辑列表_Python_Arrays_Numpy - Fatal编程技术网

Python 从大量条目创建可编辑列表

Python 从大量条目创建可编辑列表,python,arrays,numpy,Python,Arrays,Numpy,我有一个超过600000条目的文件。它基本上包括: 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 我

我有一个超过600000条目的文件。它基本上包括:

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
我想从这个大的条目文件中得到一个易于快速操作的列表/词典。最有效的方法是什么

允许轻松操作此数量的数据。您的数据是一系列
用户
标签,带有与其关联的标量数据点

import pandas as pd
s = pd.read_csv('file.txt', sep=' ', header=None, index_col=0, squeeze=True)
本指令要求
pandas
将文件数据加载到序列对象中:

  • 列以空格分隔(
    sep=''
  • 文件没有标题标题,第一行已经是数据(
    header=None
  • 我们希望使用第一列作为索引来操作日期(
    index\u col=0
  • 默认情况下,
    pandas
    构建一个
    DataFrame
    对象,但是如果它包含一列数据,我们可以请求一个
    系列
    squere=True
s
是一个在用户标签上索引的
系列
对象,我们现在可以使用它访问数据:

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
有了600000行的
'file.txt'
,加载
s
大约需要一秒钟。在
s
上执行类似dict的访问是即时的。

允许轻松操作这一数量的数据。您的数据是一系列
用户
标签,带有与其关联的标量数据点

import pandas as pd
s = pd.read_csv('file.txt', sep=' ', header=None, index_col=0, squeeze=True)
本指令要求
pandas
将文件数据加载到序列对象中:

  • 列以空格分隔(
    sep=''
  • 文件没有标题标题,第一行已经是数据(
    header=None
  • 我们希望使用第一列作为索引来操作日期(
    index\u col=0
  • 默认情况下,
    pandas
    构建一个
    DataFrame
    对象,但是如果它包含一列数据,我们可以请求一个
    系列
    squere=True
s
是一个在用户标签上索引的
系列
对象,我们现在可以使用它访问数据:

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

有了600000行的
'file.txt'
,加载
s
大约需要一秒钟。在
s
上执行类似dict的访问是即时的。

假设所有类型都正确,这应该可以工作。您是否正在打印
d
——之后您没有显示?那可能会把你锁起来。在循环之后尝试打印len(d)。您想如何操作?问题是您试图将“大文件”存储在变量中。最好是一次只做一行操作,而不存储它。但这可能不可行。@bernie:该死,你看得更快了:D@bernie很抱歉。我一直在玩numpy,并且丢失了我的原始代码。所以我找到了一些相似的东西,让我了解我正在处理的事情。没有注意到int.@cmd,我想返回一个用户名列表和符合条件的选项(即,以前没有选择过)。所以基本上choice1,choice2对user1可用,但对user2不可用。假设所有类型都正确,这应该可以工作。您是否正在打印
d
——之后您没有显示?那可能会把你锁起来。在循环之后尝试打印len(d)。您想如何操作?问题是您试图将“大文件”存储在变量中。最好是一次只做一行操作,而不存储它。但这可能不可行。@bernie:该死,你看得更快了:D@bernie很抱歉。我一直在玩numpy,并且丢失了我的原始代码。所以我找到了一些相似的东西,让我了解我正在处理的事情。没有注意到int.@cmd,我想返回一个用户名列表和符合条件的选项(即,以前没有选择过)。所以基本上choice1,choice2对user1可用,但对user2不可用。