Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Pandas bestimmte Arbeitsblätter effizient aus einer großen Excel-Datei laden?
Effizientes Laden bestimmter Arbeitsblätter aus einer Arbeitsmappe mit Pandas
Die Funktion pd.read_excel() von Pandas ist ein leistungsstarkes Tool zum Lesen von Excel-Arbeitsmappen. Wenn Sie jedoch mit großen Dateien arbeiten, die mehrere Arbeitsblätter enthalten, kann das Laden der gesamten Arbeitsmappe ineffizient sein, insbesondere wenn Sie nur Daten aus einigen wenigen spezifischen Blättern benötigen.
Den Ladevorgang mit pd.read_excel verstehen( )
Wenn pd.read_excel() für ein bestimmtes Arbeitsblatt verwendet wird, scheint es, dass die gesamte Arbeitsmappe in den Speicher geladen wird. Dies liegt daran, dass Pandas intern ein ExcelFile-Objekt zur Darstellung der Arbeitsmappe verwendet. Das ExcelFile-Objekt analysiert die gesamte Datei während seiner Initialisierung, unabhängig davon, welches Arbeitsblatt angegeben ist.
Effizientes Laden bestimmter Blätter
Um den Ladevorgang zu optimieren, sollten Sie die Verwendung von pd in Betracht ziehen .ExcelFile-Objekt direkt. Durch Instanziieren eines ExcelFile-Objekts mit dem Arbeitsmappenpfad können Sie auf bestimmte Arbeitsblätter zugreifen, ohne die gesamte Datei neu laden zu müssen.
Zum Beispiel:
xls = pd.ExcelFile('path_to_file.xls') df1 = pd.read_excel(xls, 'Sheet1') df2 = pd.read_excel(xls, 'Sheet2')
Dieser Ansatz lädt die gesamte Arbeitsmappe nur einmal während der Erstellung des ExcelFile-Objekts. Nachfolgende Aufrufe von pd.read_excel() rufen Daten aus den angegebenen Arbeitsblättern ab, ohne dass der Aufwand für das erneute Laden der Datei entsteht.
Laden mehrerer Blätter
Außerdem können Sie kann eine Liste von Blattnamen oder Indizes für pd.read_excel() angeben, um mehrere Blätter gleichzeitig zu laden. Dies gibt ein Wörterbuch zurück, in dem die Schlüssel die Blattnamen oder -indizes und die Werte die entsprechenden Datenrahmen sind.
Zum Beispiel:
sheet_list = ['Sheet1', 'Sheet2'] df_dict = pd.read_excel(xls, sheet_list)
Alle Blätter werden geladen
Wenn Sie alle Arbeitsblätter in der Arbeitsmappe laden müssen, setzen Sie den Parameter sheet_name auf Keine:
df_dict = pd.read_excel(xls, sheet_name=None)
Das obige ist der detaillierte Inhalt vonWie kann ich mit Pandas bestimmte Arbeitsblätter effizient aus einer großen Excel-Datei laden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!