2013-07-23 1 views
0

팬더 DataFrame에 문자열 버퍼를 읽고 싶습니다. pandas의 ExcelFile 기능을 사용하는 것이 좋은 방법입니다. 나는 다음과 같이 뭔가를 시도했다 :pandas.io.parsers.ExcelFile을 사용하여 StringIO 버퍼에서 dataframe으로 excel 파일을 읽으시겠습니까?

from pandas import ExcelFile as excel_handler 
excel_data = excel_handler(StringIO(file_stream.read()).getvalue()) 

을 그때부터, 나는 ExcelFile.parse() 사용할 수있는 것 같아요.

이 다음과 같은 오류 발생 : 버퍼에서 파일을 읽는 방법에

<class 'openpyxl.shared.exc.InvalidFileException'> [Errno 2] No such 
file or directory: ' 

어떤 아이디어?

+0

file_stream이란 무엇입니까? 더 중요한 것은 왜 'ExcelFile ('path/of/excel/file ')'또는 'ExcelFile (file)'로 사용하지 않는가 ... –

+0

이것은 web2py 프레임 워크 내에있다. 컨텍스트 내에서 파일 경로를 지정하는 것보다 버퍼를 만드는 것이 더 쉽습니다. StringIO (...) 버퍼가 예상대로 작동하는지 확인했습니다. 즉, Excel 통합 문서를 여는 데 xlrd 모듈과 함께 사용할 때 문제가 없었습니다. – Lamps1829

+0

버퍼를 전달할 수 없습니까? –

답변

0

수정 됨. file_stream.read()가 호출되는 곳에서 코드의 일부를 빠뜨린 경우. 결과적으로 ExcelFile이 호출 될 때까지 빈 문자열이 전달되어 오류가 발생했습니다. getvalue()를 제거해야했습니다. 방법을 알려 드리겠습니다.

from pandas import ExcelFile 
excel_data = ExcelFile(StringIO(file_stream.read()) 
dataframe = excel_data.parse(excel_data.sheet_names[-1]) 
관련 문제