2016-12-21 3 views
0

Я изучаю Python на ходу и пытаюсь использовать панды в первый раз. У меня есть каталог с около 50 excel-книгами, которые я пытаюсь объединить в один.AttributeError: объект 'str' не имеет атрибута 'parse'

import openpyxl 
import pandas as pd 
import numpy as np 
import glob 
import os 
import sys 

#path = "\\\\mtrjesmith\\Service Parts Photography Project\\STERISForms" 
files = os.listdir("\\\\mtrjesmith\\Service Parts Photography Project\\STERISForms") 
outf = "C:\\Python27\\Scripts\\steris_forms\\compiled.xls", "w+b" 
#print(files) 

frame = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in files] 
frame[1:] = [df[1:] for df in frame[1:]] 
combined = pd.concat(frame) 
combined.to_excel("C:\\Python27\\Scripts\\steris_forms\\compiled.xls", "w+b", header=False, index=False) 

Я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
File "C:\Python27\Scripts\steris_forms.py", line 18, in <module> 
    frame = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in files] 
AttributeError: 'str' object has no attribute 'parse' 

Что я могу сделать, чтобы решить эту проблему? Любые другие отзывы были бы весьма полезными.

+6

Проблемы с 'x.parse':' x' является строкой и не имеет методы синтаксического анализа. – brianpck

+0

Что вы ожидаете от 'x.parse'? –

+0

try pd.ExcelFile.parse – Steve

ответ

1

Попробуйте это:

frame = [pd.read_excel(x, header=None, index_col=None) for x in files] 
+0

, который очистил проблему, но теперь получил другую: TypeError: unbound метод parse() должен быть вызван с экземпляром ExcelFile в качестве первого аргумента (вместо этого был получен экземпляр str) в той же строке. Я предполагаю, что он видит «х» как str ... –

Смежные вопросы