2016-12-13 12 views
5

Próbuję użyć pandas.read_excel() do importowania wielu arkuszy z arkusza kalkulacyjnego. Jeśli nie określę kolumn ze słowem kluczowym parse_cols, będę mógł pobrać wszystkie dane z arkuszy, ale nie mogę wymyślić, jak określić konkretne kolumny dla każdego arkusza.Pandy read_excel() z wieloma arkuszami i określonymi kolumnami

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 

Czy ktoś wie, czy istnieje sposób, przy użyciu read_excel(), aby zaimportować kilka arkuszy z Excela, ale także określić konkretne kolumny na podstawie której arkuszu?

Dzięki.

Odpowiedz

3

Po przekazaniu listy nazw arkuszy do read_excel zwraca słownik. Możesz osiągnąć to samo z pętlą:

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

To zadziałało dla mnie dobrze, a chociaż wiedziałem, że będę w stanie to zrobić w pętli jest zdecydowanie bardziej elegancka niż pętla, którą napisałbym na mój własny. Wciąż chciałbym się dowiedzieć, czy można to zrobić bezpośrednio za pomocą komendy read_excel. Dziękuję Ci. –

+0

@BinoyFernandez Z dokumentów nie wydawało mi się to możliwe, ale ktoś inny może oczywiście wymyślić inne rozwiązanie. – ayhan

Powiązane problemy