2017-01-25 1 views
2

Bonjour, J'essaie de lire et d'ouvrir deux fichiers Excel dans un cadre de données, mais j'ai cette erreur. Mon objectif est d'utiliser des pandas et de fusionner ces deux fichiers xlsx dans une trame de données. Comment est-ce que je Aide appréciée Voici mon code ci-dessous:Obtenir une AttributeError: l'objet 'dict' n'a pas d'attribut 'parse'. En essayant de lire dans plusieurs fichiers xlsx

# import modules 
from IPython.display import display 
import pandas as pd 
import numpy as np 
pd.set_option("display.max_rows", 999) 
pd.set_option('max_colwidth',100) 
%matplotlib inline 

# filenames 
file_names = ["data/OrderReport.xlsx", "data/OrderReport2.xlsx"] 

reading_files = [(pd.read_excel(f, sheetname=None, parse_cols=None))for f in file_names] 

frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in reading_files] 
+0

Impossible de parler de l'objectif principal, mais pour votre erreur particulière, consultez la documentation ['pandas.read_excel()'] (http://pandas.pydata.org/pandas-docs/stable/generated/ pandas.read_excel.html). Passer 'sheetname = None' le fait retourner un ** dict ** d'images. Donc 'read_files' est une liste de dicts, et' x' sera un dict, qui n'a pas de méthode 'parse()'. – glibdud

+0

J'ai créé une autre question avec le code qui fonctionne réellement Mon seul problème ici était que je ne recevais pas les noms de colonne si vous pouvez regarder celui-ci à la place apprécierait l'aide! Http: //stackoverflow.com/questions/41841757/not- récupérer-les-colonnes-noms-après-lecture-dans-un-xlsx-fichier/41842231? noredirect = 1 # comment70871824_41842231 @glibdud –

+0

S'il vous plaît ne pas changer la nature de la question après que vous avez obtenu des réponses. Si vous avez une nouvelle question, postez-la comme nouvelle question. Je suis revenu à la version précédente. Vous pouvez consulter l'historique des révisions (http://stackoverflow.com/posts/41858471/revisions) si vous souhaitez utiliser l'une de vos informations supplémentaires. – glibdud

Répondre

0

Avec la « nouvelle » fonction read_excel il crée un dict de DataFrames (si vous passez sheetname = None), il n'y a pas besoin d'appeler parse (car il n'y a pas ExcelFile) . Auparavant, vous deviez créer un ExcelFile puis analyser chaque feuille. Voir here.

Par conséquent reading_files est une liste de dicts de DataFrames ... On ne sait pas comment vous voulez fusionner cela en une seule trame de données (there's lots of choices!).

+0

Merci pour la réponse, j'ai fait quelques ajustements au code ci-dessus et ai obtenu le dataframe pour fonctionner mais Im ayant un problème avec les noms de colonne, apprécierez si vous pourriez regarder ci-dessus! @ Haynd Hayden –