先說明一下如果單純地使用read_excel方法,會導致效率極其低下,因為read_excel第乙個引數是要傳path(如:r』c:\users\desktop\貸款\data.xlsx』)給計算機,每一次迴圈都要再傳一次,簡直慢的不要不要的,而excelfile則是乙個類,給計算機迴圈傳類就不會存在這種問題。
以下是傳統方法:
wb = xlrd.
open_workbook
(r'c:\users\desktop\貸款\data.xlsx'
) # 獲取workbook中所有的**
sheets = wb.
sheet_names()
data2 = pd.
dataframe()
for i in
range
(len
(sheets)):
df2 = pd.
read_excel
(r'c:\users\desktop\貸款\data.xlsx'
', sheet_name=sheets[i], index=false, encoding='utf8',converters=
) data2 = data2.
(df2)
print
(i)print
(sheets[i]
)
這裡要介紹一下國外大神的方法:附鏈結(以下是搬運過來的。
從技術上講,excelfile是乙個類,read_excel是乙個函式。無論哪種情況,實際的解析都是由中_parse_excel定義的方法處理的excelfile。所以可以使用以下兩種傳類的方法來進行。
ps:我這個excel每乙個sheet有上萬行,共有30多個sheet。
1、excelfile&read_excel方法;
xl = pd.
excelfile
(path)
for name in xl.sheet_names:
df = pd.
read_excel
(xl, name)
2、excelfile&parse方法。
xl = pd.
excelfile
(path)
for name in xl.sheet_names:
df = xl.
parse
(name)
下面是實際執行**
import pandas as pd
def read_excel1
(path)
: data_xlsx = pd.
excelfile
(path)
print
(data_xlsx.sheet_names)
data=pd.
dataframe()
for name in data_xlsx.sheet_names:
df=data_xlsx.
parse
(sheet_name=name,converters=
)# data[name]
=df data = data.
(df)
# print
(df)
print
(name)
return data
path=r'c:\users\desktop\貸款\data.xlsx'
data=
read_excel1
(path)
import pandas as pd
def read_excel1
(path)
: data_xlsx = pd.
excelfile
(path)
print
(data_xlsx.sheet_names)
data=pd.
dataframe()
for name in data_xlsx.sheet_names:
df=data_xlsx.
read_excel
(data_xlsx,sheet_name=name, encoding=
'utf8'
,converters=
)# data[name]
=df data = data.
(df)
# print
(df)
print
(name)
return data
path=r'c:\users\desktop\貸款\data.xlsx'
data=
read_excel1
(path)
C 讀取Excel中指定的Sheet名稱或索引
public datatable exceltods string path 但是上面的 只是查詢sheet1 表,如果使用者把sheet表名改了就是報下面的錯 sheet1 不是乙個有效名稱。請確認它不包含無效的字元或標點,且名稱不太長。那麼怎樣才能獲得excel中各個sheet的名稱呢?這樣就能...
C 讀取Excel中指定的Sheet名稱或索引
public datatable exceltods string path 但是上面的 只是查詢sheet1 表,如果使用者把sheet表名改了就是報下面的錯 sheet1 不是乙個有效名稱。請確認它不包含無效的字元或標點,且名稱不太長。那麼怎樣才能獲得excel中各個sheet的名稱呢?這樣就能...
C 讀取Excel中指定的Sheet名稱或索引
public datatable exceltods string path 但是上面的 只是查詢sheet1 表,如果使用者把sheet表名改了就是報下面的錯 sheet1 不是乙個有效名稱。請確認它不包含無效的字元或標點,且名稱不太長。那麼怎樣才能獲得excel中各個sheet的名稱呢?這樣就能...