Obtenir des données de plusieurs feuilles

Ingestion de données rationalisée avec pandas

Amany Mahfouz

Instructor

Sélectionner les feuilles à charger

  • read_excel() charge par défaut la première feuille d'un fichier Excel
  • Utilisez le paramètre sheet_name pour charger d'autres feuilles
  • Indiquez les feuilles par nom et/ou position (index de départ 0)
  • Passez une liste de noms/nos pour charger plusieurs feuilles à la fois
  • Tout argument transmis à read_excel() s'applique à toutes les feuilles lues
Ingestion de données rationalisée avec pandas

Sélectionner les feuilles à charger

Capture d'écran d'un tableur, affichant les onglets de deux feuilles

Ingestion de données rationalisée avec pandas

Charger des feuilles précises

# Obtenir la deuxième feuille par index de position
survey_data_sheet2 = pd.read_excel('fcc_survey.xlsx',
                                   sheet_name=1)

# Obtenir la deuxième feuille par nom survey_data_2017 = pd.read_excel('fcc_survey.xlsx', sheet_name='2017')
print(survey_data_sheet2.equals(survey_data_2017))
True
Ingestion de données rationalisée avec pandas

Charger toutes les feuilles

  • Passer sheet_name=None à read_excel() lit toutes les feuilles d'un classeur
survey_responses = pd.read_excel("fcc_survey.xlsx", sheet_name=None)

print(type(survey_responses))
<class 'collections.OrderedDict'>
for key, value in survey_responses.items():
    print(key, type(value))
2016 <class 'pandas.core.frame.DataFrame'>
2017 <class 'pandas.core.frame.DataFrame'>
Ingestion de données rationalisée avec pandas

Mettre le tout ensemble

# Créer un dataframe vide pour contenir toutes les feuilles chargées
all_responses = pd.DataFrame()

# Parcourir les dataframes dans le dictionnaire for sheet_name, frame in survey_responses.items(): # Ajouter une colonne pour connaître l'année d'origine frame["Year"] = sheet_name
# Ajouter le dataframe à all_responses all_responses = pd.concat([all_responses, frame])
# Afficher les années présentes print(all_responses.Year.unique())
['2016' '2017']
Ingestion de données rationalisée avec pandas

Passons à la pratique !

Ingestion de données rationalisée avec pandas

Preparing Video For Download...