excel çoklu sayfaları dosyasını için nasıl pandalar read_excel () kullanılır?

oy
0

Çok sayıda sayfa içeren bir excel dosyası var. Birlikte excel dosyası okumak için plan sütun A. her levha, sadece bir sütun vardır read_excel()yöntemle. Hier kodudur:

import pandas as PD

ExcelFile  = C:\\AAA.xlsx
SheetNames = ['0', '1', 'S', 'B', 'U'] 
# There are five sheets in this excel file. Those are the sheet names.

PageTotal  = len(SheetNames)

for Page in range(PageTotal):
    df = PD.read_excel(ExcelFile, header=None, squeeze = True, parse_cols = A ,sheetname=str(SheetNames[Page]))
    print df
    #do something with df

Sorun, for loopishal sadece bir kez. Ikinci öğeyi çalıştırarak for loopbunun bana aşağıdaki hata metni gösterir:

  File C:\Python27\lib\site-packages\pandas\io\excel.py, line 170, in read_excel
    io = ExcelFile(io, engine=engine)
  File C:\Python27\lib\site-packages\pandas\io\excel.py, line 227, in __init__
    self.book = xlrd.open_workbook(io)
  File C:\Python27\lib\site-packages\xlrd\__init__.py, line 422, in open_workbook
    ragged_rows=ragged_rows,
  File C:\Python27\lib\site-packages\xlrd\xlsx.py, line 824, in open_workbook_2007_xml
    x12sst.process_stream(zflo, 'SST')
  File C:\Python27\lib\site-packages\xlrd\xlsx.py, line 432, in process_stream_iterparse
    for event, elem in ET.iterparse(stream):
  File <string>, line 103, in next
IndexError: pop from empty stack

Bir acemi olarak ben bu hata hakkında hiçbir fikrim yok. Herkes beni kodları düzeltmek için yardım eder misiniz? Teşekkürler.

GÜNCELLEME Soru:

Excel dosyası birçok formüllerle ve dış bağlantılar içerir çünkü Eğer öyleyse, neden for loophala ilk öğeyi çalıştırabilir? Şaşkın.

Oluştur 05/08/2016 saat 02:10
kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
0

Burada cevap değinen: Pandalar aynı çalışma kitabının birden çok çalışma için) (pd.read_excel kullanma

Belki de bu deneyebilirsiniz:

import pandas as pd
xls = pd.ExcelFile("C:\\AAA.xlsx")
dfs = []
for x in ['0', '1', 'S', 'B', 'U'] :
    dfs.append(xls.parse(x))

Ya da bu yerine listenin bir dict kolayca çalışmak için belirli bir çarşafı alabilirsiniz

import pandas as pd
xls = pd.ExcelFile("C:\\AAA.xlsx")
dfs = {}
for x in ['0', '1', 'S', 'B', 'U'] :
    dfs[x] = xls.parse(x)
Cevap 05/08/2016 saat 02:14
kaynak kullanıcı

oy
1

Neden Kullandığınız sheetname=str(SheetNames[Page])?

Ben düzgün soruyu anlamadım ben sen istediğini düşünüyorum:

import pandas as PD

excel_file  = r"C:\\AAA.xlsx"
sheet_names = ['0', '1', 'S', 'B', 'U'] 

for sheet_name in sheet_names:
    df = pd.read_excel(excel_file, header=None, squeeze=True, parse_cols="A", sheetname=sheet_name)
    print(df)
    #do something with df 
Cevap 05/08/2016 saat 03:14
kaynak kullanıcı

oy
0

Sadece kullanabilirsiniz:

df = pd.read_excel("C:\\AAA.xlsx", sheet_name=None)  
for key, value in df.items(): 
    ................

Eğer 'sayfa_adı = Hiçbiri' ayarlandığında, pandalar otomatik olarak tüm çalışma kitabından excel sayfaları okuyacaktır. Ve için yaprak üzerinde yineleme ve bunu 'df.items ()' yineleme ve yapmanız gerekecek olursa olsun manipülasyon yapabilir içerikleri. Bu Yukarıdaki kod 'anahtar' tabakalar ismi ve 'değer' tabaka içindeki içeriği olmasıdır. Senin durumunda 'sheet_names' de, ekstra liste nesnesi oluşturmak için gerek yoktur. o sorunu çözecek Umut.

Cevap 20/08/2019 saat 16:50
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more