手把手教你用Python讀取Excel
導讀:pandas.read_excel接口用于讀取Excel格式的數(shù)據(jù)文件,由于它使用非常頻繁、功能強大、參數(shù)眾多,因此本文專門做詳細介紹。

01 語法
pandas.read_excel接口的語法如下:
pd.read_excel(io, sheet_name=0, header=0,
names=None, index_col=None,
usecols=None, squeeze=False,
dtype=None, engine=None,
converters=None, true_values=None,
false_values=None, skiprows=None,
nrows=None, na_values=None,
keep_default_na=True, verbose=False,
parse_dates=False, date_parser=None,
thousands=None, comment=None, skipfooter=0,
convert_float=True, mangle_dupe_cols=True, **kwds)02 文件內容
io為第一個參數(shù),沒有默認值,也不能為空,根據(jù)Python的語法,第一個參數(shù)傳參時可以不寫。可以傳入本地文件名或者遠程文件的URL:
# 字符串、字節(jié)、Excel文件、xlrd.Book實例、路徑對象或者類似文件的對象
# 本地相對路徑
pd.read_excel('data/data.xlsx') # 注意目錄層級
pd.read_excel('data.xls') # 如果文件與代碼文件在同一目錄下
# 本地絕對路徑
pd.read_excel('/user/gairuo/data/data.xlsx')
# 使用URL
pd.read_excel('https://www.gairuo.com/file/data/dataset/team.xlsx')與read_csv一樣,需要注意,Mac和Windows中的路徑寫法不一樣。
03 表格
sheet_name可以指定Excel文件讀取哪個sheet,如果不指定,默認讀取第一個。
# 字符串、整型、列表、None,默認為0
pd.read_excel('tmp.xlsx', sheet_name=1) # 第二個sheet
pd.read_excel('tmp.xlsx', sheet_name='總結表') # 按sheet的名字
# 讀取第一個、第二個、名為Sheet5的sheet,返回一個df組成的字典
dfs = pd.read_excel('tmp.xlsx', sheet_name=[0, 1, "Sheet5"])
dfs = pd.read_excel('tmp.xlsx', sheet_name=None) # 所有sheet
dfs['Sheet5'] # 讀取時按sheet名04 表頭
數(shù)據(jù)的表頭參數(shù)為header,如不指定,默認為第一行。
# 整型、整型組成的列表,默認為 0
pd.read_excel('tmp.xlsx', header=None) # 不設表頭
pd.read_excel('tmp.xlsx', header=2) # 第三行為表頭
pd.read_excel('tmp.xlsx', header=[0, 1]) # 兩層表頭,多層索引05 列名
用names指定列名,也就是表頭的名稱,如不指定,默認為表頭的名稱。
# 序列,默認為None
pd.read_excel('tmp.xlsx', names=['姓名', '年齡', '成績'])
pd.read_excel('tmp.xlsx', names=c_list) # 傳入列表變量
# 沒有表頭,需要設置為None
pd.read_excel('tmp.xlsx', header=None, names=None)06 其他
其他參數(shù)與pandas.read_csv的同名參數(shù)功能一致,如果想使用僅pandas.read_csv有的參數(shù),可以考慮將數(shù)據(jù)保存為CSV文件,因為CSV文件相對通用、讀取數(shù)據(jù)快且處理方法比較豐富。
用Python讀取CSV文件的操作詳解可戳:史上最全!用Pandas讀取CSV,看這篇就夠了。
07 小結
本文介紹了pandas.read_excel相對于pandas.read_csv專有的參數(shù)功能。由于Excel文件在日常工作中較為常用,所以需要熟練掌握Excel的數(shù)據(jù)讀取功能。另外對于一些量比較小的Excel數(shù)據(jù)文件,在做數(shù)據(jù)臨時處理時,可以復制并使用pd.read_clipboard()來讀取,非常方便。


