【发布时间】:2016-03-20 00:26:50
【问题描述】:
我正在运行一个一直对我有用的代码。这次我在 2 个 .csv 文件上运行它:“data”(24 MB)和“data1”(475 MB)。 “data”有 3 列,每列大约 680000 个元素,而“data1”有 3 列,每列 33000000 个元素。当我运行代码时,经过大约 5 分钟的处理,我得到的只是“Killed: 9”。如果这是内存问题,如何解决?欢迎任何建议!
这是代码:
import csv
import numpy as np
from collections import OrderedDict # to save keys order
from numpy import genfromtxt
my_data = genfromtxt('data.csv', dtype='S',
delimiter=',', skip_header=1)
my_data1 = genfromtxt('data1.csv', dtype='S',
delimiter=',', skip_header=1)
d= OrderedDict((rows[2],rows[1]) for rows in my_data)
d1= dict((rows[0],rows[1]) for rows in my_data1)
dset = set(d) # returns keys
d1set = set(d1)
d_match = dset.intersection(d1) # returns matched keys
import sys
sys.stdout = open("rs_pos_ref_alt.csv", "w")
for row in my_data:
if row[2] in d_match:
print [row[1], row[2]]
“数据”的标题是:
dbSNP RS ID Physical Position
0 rs4147951 66943738
1 rs2022235 14326088
2 rs6425720 31709555
3 rs12997193 106584554
4 rs9933410 82323721
5 rs7142489 35532970
“data1”的头是:
V2 V4 V5
10468 TC T
10491 CC C
10518 TG T
10532 AG A
10582 TG T
【问题讨论】:
-
您是在自己的计算机上还是在某些服务器上运行它?如果它在服务器上运行,可能会有一些脚本监视“疯狂运行”的进程,一段时间后在它们上调用
kill -9。 -
嗨@tobias_k,我在自己的笔记本电脑上运行它
-
你如何“得到”`Killed: 9"?在标准输出中,还是在异常消息中?
-
嗨@D.Everhard,在标准输出中:Lucass-MacBook-Air:txt.long lucas$ python match_pos_snp.py Killed: 9
标签: python csv dictionary