我正在運行一直爲我工作的代碼。這次我在2個.csv文件上運行它:「data」(24 MB)和「data1」(475 MB)。 「數據」每列有大約680000個元素的3列,而「data1」有3列,每列33000000個元素。當我運行代碼時,經過大約5分鐘的處理之後,我得到了「Killed:9」。如果這是一個內存問題,如何解決它?任何建議是值得歡迎的!Python Killed:9使用從2 csv文件創建的字典運行代碼時
這是代碼:
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
的 「數據1」 標題是:
V2 V4 V5
10468 TC T
10491 CC C
10518 TG T
10532 AG A
10582 TG T
你是在自己的計算機上還是在某臺服務器上運行它?如果它運行在服務器上,可能有一些腳本監視「流氓」的進程,在一段時間後調用'kill -9'。 –
嗨@tobias_k,我在自己的筆記本電腦上運行它 – Lucas
在標準輸出中,或者在一個異常信息中,你如何獲得「殺死:9」? –