手把手教你用Python讀取Excel
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 文件內(nèi)容
io為第一個參數(shù),沒有默認(rèn)值,也不能為空,根據(jù)Python的語法,第一個參數(shù)傳參時(shí)可以不寫??梢詡魅氡镜匚募蛘哌h(yuǎn)程文件的URL:
- # 字符串、字節(jié)、Excel文件、xlrd.Book實(shí)例、路徑對象或者類似文件的對象
- # 本地相對路徑
- 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,如果不指定,默認(rèn)讀取第一個。
- # 字符串、整型、列表、None,默認(rèn)為0
- pd.read_excel('tmp.xlsx', sheet_name=1) # 第二個sheet
- pd.read_excel('tmp.xlsx', sheet_name='總結(jié)表') # 按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'] # 讀取時(shí)按sheet名
04 表頭
數(shù)據(jù)的表頭參數(shù)為header,如不指定,默認(rèn)為第一行。
- # 整型、整型組成的列表,默認(rèn)為 0
- pd.read_excel('tmp.xlsx', header=None) # 不設(shè)表頭
- pd.read_excel('tmp.xlsx', header=2) # 第三行為表頭
- pd.read_excel('tmp.xlsx', header=[0, 1]) # 兩層表頭,多層索引
05 列名
用names指定列名,也就是表頭的名稱,如不指定,默認(rèn)為表頭的名稱。
- # 序列,默認(rèn)為None
- pd.read_excel('tmp.xlsx', names=['姓名', '年齡', '成績'])
- pd.read_excel('tmp.xlsx', names=c_list) # 傳入列表變量
- # 沒有表頭,需要設(shè)置為None
- pd.read_excel('tmp.xlsx', header=None, names=None)
06 其他
其他參數(shù)與pandas.read_csv的同名參數(shù)功能一致,如果想使用僅pandas.read_csv有的參數(shù),可以考慮將數(shù)據(jù)保存為CSV文件,因?yàn)镃SV文件相對通用、讀取數(shù)據(jù)快且處理方法比較豐富。
用Python讀取CSV文件的操作詳解可戳:史上最全!用Pandas讀取CSV,看這篇就夠了。
07 小結(jié)
本文介紹了pandas.read_excel相對于pandas.read_csv專有的參數(shù)功能。由于Excel文件在日常工作中較為常用,所以需要熟練掌握Excel的數(shù)據(jù)讀取功能。另外對于一些量比較小的Excel數(shù)據(jù)文件,在做數(shù)據(jù)臨時(shí)處理時(shí),可以復(fù)制并使用pd.read_clipboard()來讀取,非常方便。