나는 큰 csv 파일을 pandas 데이터 프레임으로 읽는 매우 간단한 것을 시도하고 있습니다.
data = pandas.read_csv(filepath, header = 0, sep = DELIMITER,skiprows = 2)
코드는으로 실패 MemoryError
하거나 종료되지 않습니다.
작업 관리자의 메모리 사용량은 506Mb에서 중지되었으며 5 분 동안 변경 사항이없고 CPU 활동이없는 프로세스에서 중지했습니다.
pandas 버전 0.11.0을 사용하고 있습니다.
파일 파서에 메모리 문제가 있었다는 것을 알고 있지만 http://wesmckinney.com/blog/?p=543 에 따르면 이 문제가 해결 되어야합니다.
내가 읽으려고하는 파일은 366Mb이고, 파일을 짧게 (25Mb) 줄이면 위의 코드가 작동합니다.
또한 0x1e0baf93 주소에 쓸 수 없다는 팝업이 나타납니다.
Stacktrace :
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 . . .
약간의 배경 지식-저는 사람들에게 파이썬이 R과 똑같이 할 수 있다는 것을 확신 시키려고 노력하고 있습니다.이를 위해 저는 R 스크립트를 복제하려고합니다
data <- read.table(paste(INPUTDIR,config[i,]$TOEXTRACT,sep=""), HASHEADER, DELIMITER,skip=2,fill=TRUE)
R은 위의 파일을 잘 읽을 수있을뿐만 아니라 for 루프에서 이러한 파일 중 여러 개를 읽은 다음 데이터로 일부 작업을 수행합니다. 파이썬에 그 크기의 파일에 문제가 있다면 나는 잃어버린 전투와 싸울 수 있습니다 ...