2013-07-23 33 views
0

我想讀一個字符串緩衝區成熊貓DataFrame。看起來好的方法是使用熊貓的ExcelFile功能。我試着做類似以下的事情:使用pandas.io.parsers.ExcelFile將excel文件從StringIO緩衝區讀取到數據框?

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(...)緩衝區按預期工作(即,使用xlrd模塊打開Excel工作簿時沒有問題)。 – 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])