所以我有一個 Excel 資料集,里面有 2 張我想用 pandas 閱讀的作業表。為了使代碼更具動態性,我決定將作業表名稱串列存盤到一個變數中,然后將其傳遞給“get”方法,以便為兩者創建單獨的 DataFrame。
import pandas as pd
# access all sheets as one DataFrame
excel_file = pd.ExcelFile(r"C:\Users\user\Desktop\example.xlsx")
email_list = pd.read_excel(excel_file)
sheets = excel_file.sheet_names
# separate sheets into separate DataFrames.
sheet1 = email_list.get(sheets[0])
sheet2 = email_list.get(sheets[1])
然后從這些 DataFrames 我提取一列電子郵件作為一個系列
sheet1list = sheet1['Email']
sheet2list = sheet2['Email']
但是當我運行它時,我遇到了以下錯誤:
Traceback (most recent call last):
File "c:\Users\ga201\Desktop\My Python Projects\main.py", line 30, in <module>
sheet1list = sheet1['Email']
TypeError: 'NoneType' object is not subscriptable
為什么它使
sheet1變數成為 NoneType?有沒有辦法通過變數實際使用它,或者是輸入作業表名稱的唯一方法?
只是好奇。我試過使用 f 字串,但它們也不起作用。
uj5u.com熱心網友回復:
您誤解了pd.read_excel的默認行為。如果您不指定引數sheet_name,該函式將僅將第一個作業表作為 DataFrame 回傳。
用于email_list = pd.read_excel(excel_file, sheet_name=None)獲取所有作業表的 DataFrame。
回傳值現在將是一個 DataFrames 字典,其中 sheet_names 作為鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/489366.html
