2016-12-13 4 views
5

Ich versuche pandas.read_excel() zu verwenden, um mehrere Arbeitsblätter aus einer Tabelle zu importieren. Wenn ich die Spalten mit dem Schlüsselwort parse_cols nicht spezifiziere, kann ich alle Daten aus den Blättern abrufen, aber ich kann nicht herausfinden, wie ich bestimmte Spalten für jedes Blatt angeben soll.Pandas read_excel() mit mehreren Blättern und spezifischen Spalten

import pandas as pd 

workSheets = ['sheet1', 'sheet2', 'sheet3','sheet4'] 
cols = ['A,E','A,E','A,C','A,E'] 

df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols='A:E') #This works fine 
df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols=cols) #This returns empty dataFrames 

Weiß jemand, ob es einen Weg gibt, read_excel() verwendet, mehrere Arbeitsblätter aus Excel zu importieren, sondern auch bestimmte Spalten, auf deren Grundlage Arbeitsblatt angeben?

Danke.

Antwort

3

Wenn Sie eine Liste von Blattnamen an read_excel übergeben, wird ein Wörterbuch zurückgegeben. Sie können die gleiche Sache mit einer Schleife zu erreichen:

workSheets = ['sheet1', 'sheet2', 'sheet3', 'sheet4'] 
cols = ['A,E', 'A,E', 'A,C', 'A,E'] 
df = {} 
for ws, c in zip(workSheets, cols): 
    df[ws] = pd.read_excel(excelFile, sheetname=ws, parse_cols=c) 
+0

Das ist für mich ganz gut gearbeitet, und während ich wusste, dass ich in der Lage sein, es in einer Schleife zu tun, es ist auf jeden Fall eleganter als eine Schleife hat ich geschrieben am würde mein eigenes. Ich wäre trotzdem neugierig zu erfahren, ob dies direkt über den Befehl read_excel geschehen kann. Danke. –

+0

@BinoyFernandez Aus den Unterlagen schien es mir nicht möglich, aber jemand anderes könnte natürlich eine andere Lösung finden. – ayhan

Verwandte Themen