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, parse_dates=False,
date_parser=None, thousands=None, comment=None, skipfooter=0,
convert_float=True, **kwds)
1、io乖订,Excel的存儲路徑
2具练、sheet_name甜无,要讀取的工作表名稱
3哥遮、header眠饮, 用哪一行作列名
4铜邮、names, 自定義最終的列名
5扔茅、index_col秸苗, 用作索引的列
6、usecols玖瘸,需要讀取哪些列
7檀咙、squeeze,當數(shù)據(jù)僅包含一列
8蔑匣、converters 侣诺,強制規(guī)定列數(shù)據(jù)類型
9、skiprows趴久,跳過特定行
10搔确、nrows 膳算,需要讀取的行數(shù)
11、skipfooter 涕蜂, 跳過末尾n行
Excel是微軟的經(jīng)典之作机隙,在日常工作中的數(shù)據(jù)整理萨西、分析和可視化方面旭旭,有其獨到的優(yōu)勢,尤其在你熟練應用了函數(shù)和數(shù)據(jù)透視等高級功能之后源梭,Excel可以大幅度提高你的工作效率稍味。但如果數(shù)據(jù)量超大仲闽,Excel的劣勢也就隨之而來,甚至因為內(nèi)存溢出無法打開文件屑彻,后續(xù)的分析更是難上加難顶吮。那么,有什么更好的解決辦法嗎搏恤?工欲善其事湃交,必先利其器,在這里我們介紹使用Python的pandas數(shù)據(jù)分析包來解決此問題息罗。
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, parse_dates=False,
date_parser=None, thousands=None, comment=None, skipfooter=0,
convert_float=True, **kwds)
pandas讀取Excel后返回DataFrame迈喉,接下來我們就pd.read_excel()的常用參數(shù)進行詳細解析温圆。
【文中使用英超、西甲的排名積分榜及射手榜作為原始數(shù)據(jù)~~~】
1得运、io,Excel的存儲路徑
建議使用英文路徑以及英文命名方式彬檀。
import pandas as pd
io = r'C:\Users\Administrator\Desktop\data.xlsx'
2瞬女、sheet_name诽偷,要讀取的工作表名稱
可以是整型數(shù)字疯坤、列表名或SheetN,也可以是上述三種組成的列表眠冈。
整型數(shù)字:目標sheet所在的位置菌瘫,以0為起始,比如sheet_name = 1代表第2個工作表雇盖。
data = pd.read_excel(io, sheet_name = 1)
data.head()
列表名:目標sheet的名稱栖忠,中英文皆可。
data = pd.read_excel(io, sheet_name = '英超射手榜')
data.head()
SheetN:代表第N個sheet狸相,S要大寫捐川,注意與整型數(shù)字的區(qū)別。
data = pd.read_excel(io, sheet_name = 'Sheet5')
data.head()
組合列表: sheet_name = [0, '英超射手榜', 'Sheet4']将谊,代表讀取三個工作表渐白,分別為第1個工作表、名為“英超射手榜”的工作表和第4個工作表栋齿。顯然,Sheet4未經(jīng)重命名基协。
sheet_name 默認為0澜驮,取Excel第一個工作表惋鸥。如果讀取多個工作表,則顯示表格的字典耐量。對于初學者而言滤港,建議每次讀取一個工作表,然后進行二次整合山叮。
data = pd.read_excel(io, sheet_name = ['英超積分榜', '西甲積分榜'], nrows = 5)
sheet_name = ['英超積分榜', '西甲積分榜'] 樟凄,返回兩個工作表組成的字典
data
3缝龄、header, 用哪一行作列名
默認為0 瞎饲,如果設置為[0,1]炼绘,則表示將前兩行作為多重索引俺亮。
data = pd.read_excel(io, sheet_name = '英超積分榜', header = [0,1])
前兩行作為列名。
data.head()
4东且、names本讥, 自定義最終的列名
一般適用于Excel缺少列名鲁冯,或者需要重新定義列名的情況。
注意:names的長度必須和Excel列長度一致色查,否則會報錯薯演。
data = pd.read_excel(io, sheet_name = '英超射手榜',
names = ['rank','player','club','goal','common_goal','penalty'])
data.head()
5、index_col秧了, 用作索引的列
可以是工作表列名稱跨扮,如index_col = '排名';
可以是整型或整型列表示惊,如index_col = 0 或 [0, 1]好港,如果選擇多個列,則返回多重索引米罚。
data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = '排名')
data.head()
data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = [0, 1])
data.head()
6、usecols丈探,需要讀取哪些列
可以使用整型,從0開始碗降,如[0,2,3]隘竭;
可以使用Excel傳統(tǒng)的列名“A”、“B”等字母讼渊,如“A:C, E” ="A, B, C, E"动看,注意兩邊都包括脓钾。
usecols 可避免讀取全量數(shù)據(jù)硝岗,而是以分析需求為導向選擇特定數(shù)據(jù)丽柿,可以大幅提高效率孟抗。
data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = [0, 1, 3])
data.head()
data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = 'A:C, E')
data.head()
肮掏帷速址?什么K伞焦人!為啥不見C羅奶甘?篷店?
大佬,C羅轉會去尤文圖斯啦~~~~
7臭家、squeeze疲陕,當數(shù)據(jù)僅包含一列
squeeze為True時,返回Series钉赁,反之返回DataFrame蹄殃。
data = pd.read_excel(io, sheet_name = 'squeeze', squeeze = True)
data.head()
data = pd.read_excel(io, sheet_name = 'squeeze', squeeze = False)
data.head()
8、converters 橄霉,強制規(guī)定列數(shù)據(jù)類型
converters = {'排名': str, '場次': int}窃爷, 將“排名”列數(shù)據(jù)類型強制規(guī)定為字符串(pandas默認將文本類的數(shù)據(jù)讀取為整型)邑蒋,“場次”列強制規(guī)定為整型;
主要用途:保留以文本形式存儲的數(shù)字按厘。
data = pd.read_excel(io, sheet_name = 'converters')
data['排名'].dtype
data = pd.read_excel(io, sheet_name = 'converters', converters = {'排名': str, '場次': float})
data['排名'].dtype
9医吊、skiprows,跳過特定行
skiprows= n逮京, 跳過前n行卿堂; skiprows = [a, b, c],跳過第a+1,b+1,c+1行(索引從0開始)懒棉;
使用skiprows 后草描,有可能首行(即列名)也會被跳過。
data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = [1,2,3])
跳過第2,3,4行數(shù)據(jù)(索引從0開始策严,包括列名)
data.head()
data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = 3)
data.head()
10穗慕、nrows ,需要讀取的行數(shù)
如果只想了解Excel的列名及概況妻导,不必讀取全量數(shù)據(jù)逛绵,nrows會十分有用。
data = pd.read_excel(io, sheet_name = '英超射手榜', nrows = 10)
data
11倔韭、skipfooter 术浪, 跳過末尾n行
data = pd.read_excel(r'C:\Users\Administrator\Desktop\data.xlsx' ,
sheet_name = '英超射手榜', skipfooter = 43)
skipfooter = 43, 跳過末尾43行(索引從0開始)
data
歡迎搜索今日頭條“海闊天空愛閱讀”寿酌,欣賞更多文章~~
————————————————
版權聲明:本文為CSDN博主「KevinHooSCUT」的原創(chuàng)文章胰苏,遵循 CC 4.0 BY-SA 版權協(xié)議,轉載請附上原文出處鏈接及本聲明醇疼。
原文鏈接:https://blog.csdn.net/weixin_38546295/article/details/83537558