मैं कुछ सरल करने की कोशिश कर रहा हूं, एक बड़ी सीएसवी फ़ाइल को पंडों के डेटाफ्रेम में पढ़ना।
data = pandas.read_csv(filepath, header = 0, sep = DELIMITER,skiprows = 2)
कोड या तो के साथ विफल रहता है MemoryError , या बस खत्म कभी नहीं।
टास्क मैनेजर में मेम का उपयोग 506 एमबी पर बंद हो गया और 5 मिनट के बाद बिना किसी बदलाव के और सीपीयू गतिविधि के कारण मैंने इसे बंद कर दिया।
मैं पांडा संस्करण 0.11.0 का उपयोग कर रहा हूं।
मुझे पता है कि फ़ाइल पार्सर के साथ एक मेमोरी समस्या हुआ करती थी, लेकिन http://wesmckinney.com/blog/?p=543 के अनुसार यह तय होना चाहिए था।
जिस फ़ाइल को मैं पढ़ने की कोशिश कर रहा हूं वह 366 एमबी है, ऊपर दिया गया कोड काम करता है अगर मैंने फ़ाइल को कुछ छोटा (25 एमबी) घटा दिया।
यह भी हुआ है कि मुझे एक पॉप मिलता है जो मुझे बताता है कि यह 0x1e0baf93 को संबोधित करने के लिए नहीं लिख सकता है ...
स्टैक ट्रेस:
Traceback (most recent call last):
File "F:\QA ALM\Python\new WIM data\new WIM data\new_WIM_data.py", line 25, in
<module>
wimdata = pandas.read_csv(filepath, header = 0, sep = DELIMITER,skiprows = 2
)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\io\parsers.py"
, line 401, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\io\parsers.py"
, line 216, in _read
return parser.read()
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\io\parsers.py"
, line 643, in read
df = DataFrame(col_dict, columns=columns, index=index)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\frame.py"
, line 394, in __init__
mgr = self._init_dict(data, index, columns, dtype=dtype)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\frame.py"
, line 525, in _init_dict
dtype=dtype)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\frame.py"
, line 5338, in _arrays_to_mgr
return create_block_manager_from_arrays(arrays, arr_names, axes)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\internals
.py", line 1820, in create_block_manager_from_arrays
blocks = form_blocks(arrays, names, axes)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\internals
.py", line 1872, in form_blocks
float_blocks = _multi_blockify(float_items, items)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\internals
.py", line 1930, in _multi_blockify
block_items, values = _stack_arrays(list(tup_block), ref_items, dtype)
File "C:\Program Files\Python\Anaconda\lib\site-packages\pandas\core\internals
.py", line 1962, in _stack_arrays
stacked = np.empty(shape, dtype=dtype)
MemoryError
Press any key to continue . . .
थोड़ी पृष्ठभूमि - मैं लोगों को यह समझाने की कोशिश कर रहा हूं कि पायथन आर के समान ही कर सकता है। इसके लिए मैं एक आर स्क्रिप्ट को दोहराने की कोशिश कर रहा हूं जो करता है
data <- read.table(paste(INPUTDIR,config[i,]$TOEXTRACT,sep=""), HASHEADER, DELIMITER,skip=2,fill=TRUE)
न केवल उपरोक्त फ़ाइल को ठीक से पढ़ने का प्रबंधन करता है, यह इन फ़ाइलों में से कई को लूप में भी पढ़ता है (और फिर डेटा के साथ कुछ सामान करता है)। यदि पायथन को उस आकार की फ़ाइलों के साथ कोई समस्या है, तो मैं एक हारने वाली लड़ाई लड़ सकता हूं ...