List Python 2.7.10内存错误

List Python 2.7.10内存错误,list,python-2.7,dictionary,memory,python-3.5,List,Python 2.7,Dictionary,Memory,Python 3.5,我在Python2.7.10中定义了一个函数,将五个(每个有16个变量,大小约120MB)csv.files一起导入Python 2.7.10,它可以工作,然后我选择了四个时间变量作为日期时间进行格式化,前三个变量成功转换,但最后一个变量由于内存错误而失败。我定义的函数如下所示: def reddat(filename,year1,year2): bigdata=defaultdict(list) for i in range(year1,year2): stri

我在Python2.7.10中定义了一个函数,将五个(每个有16个变量,大小约120MB)csv.files一起导入Python 2.7.10,它可以工作,然后我选择了四个时间变量作为日期时间进行格式化,前三个变量成功转换,但最后一个变量由于内存错误而失败。我定义的函数如下所示:

def reddat(filename,year1,year2):
    bigdata=defaultdict(list)
    for i in range(year1,year2):
        string=filename+str(i)+".csv"     
        with open(string,'rb') as f:
            reader=csv.reader(f)
            headers=reader.next()
            data1 = {h:[] for h in headers}
            for row in reader:
                for h, v in zip(headers, row):
                    data1[h].append(v)
        for h in headers:
            bigdata[h].append(data1[h])
    return bigdata

dataall=reddat("Calls_for_Service_",2011,2016)
##This function works to import five years data and combined as one dictionary as dataall##
然后我从dataall中选择了四个变量

TimeCreate=[]
TimeDispatch=[]
TimeArrive=[]
TimeClosed=[]
for i in range(0,len(dataall['TimeCreate'])):
    TimeCreate+=dataall['TimeCreate'][i]
    TimeDispatch+=dataall['TimeDispatch'][i]
    TimeArrive+=dataall['TimeArrive'][i]
    TimeClosed+=dataall['TimeClosed'][i]
现在,从dataall中选择了四个变量作为列表,这四个列表包含字符串,我想将它们更改为日期时间格式。我定义了另一个函数,如下所示:

def func(x):
    try:
        return dt.datetime.strptime(x, "%m/%d/%Y %I:%M:%S %p")
    except:
        return pd.NaT
我将四个字符串列表更改为日期时间列表:

TimeCreatenew=[func(d) for d in TimeCreate]
TimeDispatchnew=[func(d) for d in TimeDispatch]
TimeArrivenew=[func(d) for d in TimeArrive]
TimeClosednew=[func(d) for d in TimeClosed]
然而,Python说,“TimeCreatnew”、“TimeDispatchnew”和“TimeArrivenew”工作得很好,但当“TimeClosednew”改变了格式时

Traceback (most recent call last):
File "C:\Users\....\DataScience\scriptnew.py" line 65, in <module>  
TimeClosednew=[func(d) for d in TimeClosed]
MemoryError
回溯(最近一次呼叫最后一次):
文件“C:\Users\..\DataScience\scriptnew.py”第65行,在
TimeClosednew=[func(d)表示TimeClosed中的d]
记忆者
我的python 2.7.10是32位的,如何解决这个问题?或者如果我的功能“reddat”无效?非常感谢

找到了一个使用Python 3.5的解决方案
我使用了Anaconda3的Python3.5(64位),它在没有内存错误的情况下解决了这个问题。我认为Python2.7.10可能无法处理如此大的数据。如果有人对这个问题有一些想法,可以在Python2.7.10下解决。请分享我的想法。非常感谢

为什么不试试Anaconda 64位Python 2.7版本?谢谢你的建议(对Evert)。当我安装Anaconda3(64位)时,我忘记了Anaconda64位Python 2.7有一个版本。再次感谢。为什么不试试Anaconda 64位Python 2.7版本呢?谢谢你的建议(给Evert)。当我安装Anaconda3(64位)时,我忘记了Anaconda64位Python 2.7有一个版本。再次感谢。