python使用pandas讀寫excel文件的方法實(shí)例
引言
現(xiàn)在本地創(chuàng)建一個(gè)excel表,以及兩個(gè)sheet,具體數(shù)據(jù)如下:
sheet1:
sheet2:
讀取excel文件
pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)
io:excel文件路徑。
sheet_name:返回指定的sheet。
header:表頭,默認(rèn)值為0。也可以指定多行。當(dāng)header取值為None時(shí)候data打印值最多,0相比None會(huì)少一行,1對(duì)比0又會(huì)在少一行。也就是說設(shè)置header為多少,那么那行之前的數(shù)據(jù)就會(huì)缺失。header也可以設(shè)置為一個(gè)范圍值如header=[0, 1]表示前兩行為多重索引。
usecols:讀取指定的列。
skiprows:跳過特定行。
import pandas a = pandas.read_excel("t.xlsx",sheet_name=0)#sheet_name可以使用下標(biāo),sheet的名稱 print(a) #打印所有 print(a.values) #打印除第一行以外的信息 print(a.values[0]) #打印第一行的值 print(data['標(biāo)題列'].values) #打印具體一列的值 #讀取同一文件的不同sheet data= pandas.read_excel("t.xlsx", ['Sheet1', 'Sheet2']) print(data)#打印sheet1和sheet2的所有元素 print(data.get('Sheet1')['result'][0]) #打印sheet1表的result列的第一個(gè)元素 #sheet_name = None時(shí),返回所有表的數(shù)據(jù) data = pandas.read_excel("t.xlsx", sheet_name=None) print(data) 結(jié)果: """ {'Sheet1': case_id account pswd hope result 0 1.0 qwe 123456.0 登陸成功 cheng 1 NaN NaN NaN NaN bai, 'Sheet2': 1 2 3 4 5 0 a b c d e} """ #sheet_name可以選擇名稱,下標(biāo)組合方式提取多張表數(shù)據(jù) data = pandas.read_excel("t.xlsx", sheet_name=['Sheet1',1]) print(data) 結(jié)果: """ {'Sheet1': case_id account pswd hope result 0 1.0 qwe 123456.0 登陸成功 cheng 1 NaN NaN NaN NaN bai, 1: 1 2 3 4 5 0 a b c d e} """ #查詢指定列的數(shù)據(jù) data = pandas.read_excel('t.xlsx', sheet_name='Sheet1', usecols=['result',]) print(data) 結(jié)果: """ result 0 cheng 1 bai """ data = pandas.read_excel('t.xlsx', sheet_name='Sheet1', usecols=[0]) print(data) 結(jié)果: """ case_id 0 1.0 1 NaN """ data = pandas.read_excel('t.xlsx', sheet_name='Sheet1', usecols=[0, 1]) print(data) 結(jié)果: """ case_id account 0 1.0 qwe 1 NaN NaN """
ExcelFile:為了更方便地讀取同一個(gè)文件的多張表格
import pandas #同時(shí)讀取一個(gè)文件的多個(gè)sheet,僅需讀取一次內(nèi)存,性能更好 data = pandas.ExcelFile("t.xlsx") sheets = pandas.read_excel(data)#sheet_name不寫,默認(rèn)為查第一個(gè)sheet的數(shù)據(jù) sheets = pandas.read_excel(data, sheet_name="Sheet2")#查看指定sheet的數(shù)據(jù) print(sheets) #也可以這么寫 with pandas.ExcelFile("t.xlsx") as xlsx: s1 = pandas.read_excel(xlsx, sheet_name="Sheet1") s2 = pandas.read_excel(xlsx, sheet_name="Sheet2") print(s1) print("-----------------------") print(s2) 結(jié)果: """ case_id account pswd hope result 0 1.0 qwe 123456.0 登陸成功 cheng 1 NaN NaN NaN NaN bai ----------------------- 1 2 3 4 5 0 a b c d e """
""" index_col:索引對(duì)應(yīng)的列,可以設(shè)置范圍如[0, 1]來設(shè)置多重索引 na_values:指定字符串展示為NAN """ with pandas.ExcelFile('t.xlsx') as xls: data['Sheet1'] = pandas.read_excel(xls, 'Sheet1', index_col=None, na_values=['NA']) data['Sheet2'] = pandas.read_excel(xls, 'Sheet2', index_col=1) print(data) print("-------------------------------") print(data['Sheet1']) print("--------------------------------") print(data['Sheet2']) 結(jié)果: """ {'Sheet1': case_id account pswd hope result 0 1.0 qwe 123456.0 登陸成功 cheng 1 NaN NaN NaN NaN bai, 'Sheet2': 1 3 4 5 2 b a c d e} ------------------------------- case_id account pswd hope result 0 1.0 qwe 123456.0 登陸成功 cheng 1 NaN NaN NaN NaN bai -------------------------------- 1 3 4 5 2 b a c d e """
寫入文件:
將數(shù)據(jù)寫入excel
1.當(dāng)文件不存在時(shí),會(huì)自動(dòng)創(chuàng)建文件,并寫入數(shù)據(jù);
2.當(dāng)文件存在時(shí),會(huì)覆蓋數(shù)據(jù);
3.sheet_name 不寫默認(rèn)為Sheet1;
4.文件寫入,切記關(guān)閉excel。
data = {'名字': ['張三','李四'], '分?jǐn)?shù)': [100, 100] } a= pandas.DataFrame(data) a.to_excel('1.xlsx', sheet_name='Sheet1',index=False)# index = False表示不寫入索引
excel一次寫入多sheet:
1.下面代碼為在1.xlsx中寫入sheet1,sheet2兩個(gè)表。
2.可以通過在ExcelWriter中添加mode參數(shù),該參數(shù)默認(rèn)為w,修改為a的話,可以在已存在sheet的excel中添加sheet表。
df1 = pandas.DataFrame({'名字': ['張三', '王四'], '分?jǐn)?shù)': [100, 100]}) df2 = pandas.DataFrame({'年齡': ['18', '19'], '性別': ['男', '女']}) with pandas.ExcelWriter('1.xlsx') as writer: df1.to_excel(writer, sheet_name='Sheet1', index=False) df2.to_excel(writer, sheet_name='Sheet2', index=False) #新增一個(gè)sheet df3 = pandas.DataFrame({'新增表': ['1', '2']}) with pandas.ExcelWriter('1.xlsx', mode='a') as writer: df3.to_excel(writer, sheet_name='Sheet3', index=False)
總結(jié)
到此這篇關(guān)于python使用pandas讀寫excel文件的文章就介紹到這了,更多相關(guān)python pandas讀寫excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用scrapy將爬到的數(shù)據(jù)保存到mysql(防止重復(fù))
這篇文章主要給大家介紹了關(guān)于利用scrapy將爬到的數(shù)據(jù)保存到mysql(防止重復(fù))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2018-03-03在pycharm中為項(xiàng)目導(dǎo)入anacodna環(huán)境的操作方法
這篇文章主要介紹了在pycharm中為項(xiàng)目導(dǎo)入anacodna環(huán)境的操作方法,本文圖文并茂通過實(shí)例詳解的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02PyCharm上安裝Package的實(shí)現(xiàn)(以pandas為例)
這篇文章主要介紹了PyCharm上安裝Package的實(shí)現(xiàn)(以pandas為例),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python使用socket制作聊天室詳細(xì)源碼(可以直接運(yùn)行)
Python是一個(gè)非常靈活的編程語(yǔ)言,我們現(xiàn)在到處可見用Python編寫的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于python使用socket制作聊天室的相關(guān)資料,文中的代碼可以直接運(yùn)行,需要的朋友可以參考下2023-12-12django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法
這篇文章主要介紹了django認(rèn)證系統(tǒng)實(shí)現(xiàn)自定義權(quán)限管理的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07python playwright--pytest-playwright、pytest-base-url插件編
這篇文章主要介紹了python playwright--pytest-playwright、pytest-base-url插件編寫用例,它提供上下文隔離,開箱即用地在多個(gè)瀏覽器配置上運(yùn)行,它繼承了pytest框架,以及支持playwright的一些基礎(chǔ)使用,需要的朋友可以參考下2023-05-05Django搭建項(xiàng)目實(shí)戰(zhàn)與避坑細(xì)節(jié)詳解
這篇文章主要給大家介紹了關(guān)于Django搭建項(xiàng)目實(shí)戰(zhàn)與避坑細(xì)節(jié)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Python+PyQt5實(shí)現(xiàn)美劇爬蟲可視工具的方法
這篇文章主要介紹了Python+PyQt5實(shí)現(xiàn)美劇爬蟲可視工具的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04