python 第三方模块之 pandas 操作 excel
python 解析 excel 對(duì)比
| xlrd | 1.1.0(2017年8月22日) | √ | √ | 2.0 之后不支持xlsx | ||
| xlwt | 1.3.0(2017年8月22日) | √ | ||||
| openpyxl | 2.6.2(2019年3月29日) | √ | √ | |||
| XlsxWriter | 1.2.1(2019年9月14日) | √ | ||||
| xlutils | 2.0.0(2019年6月9日) | √ | √ | √ | 需xlrd/xlwt配合 | |
| pandas | 0.25.1(2019年8月22日) | √ | √ | √ | √ | 需xlrd/xlwt/openpyxl/xlsxwriter配合 |
簡介
Pandas是python的一個(gè)數(shù)據(jù)分析包,納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。
Pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
Pandas官方文檔:https://pandas.pydata.org/pandas-docs/stable/
Pandas中文文檔:https://www.pypandas.cn
安裝
pandas依賴處理Excel的xlrd模塊,所以我們需要提前安裝 xlrd,命令:pip install xlrd
安裝pandas模塊還需要一定的編碼環(huán)境,所以我們自己在安裝的時(shí)候,確保你的電腦有這些環(huán)境:Net.4 、VC-Compiler以及winsdk_web。
步驟1和2 準(zhǔn)備好了之后,就可以開始安裝pandas了,命令:pip install pandas
pandas操作Excel表單
簡單示例
import pandas as pd from pandas import DataFrame# 讀 data = pd.read_excel('1.xlsx')# 查看所有的值 print(data.values)# 查看第一行的值 print(data.values[0])# 查看某一列所有的值 print(data['標(biāo)題列1'].values)# 新增列 data['標(biāo)題列3'] = None# 新增行 data.loc[3] = ['王五', 100, '男']# 刪除行:axis=0 data = data.drop([0,1], axis=0)# 刪除列:axis=1 data.drop('標(biāo)題列3', axis=1)# 保存 DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)讀取excel
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, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, **kwds)io:excel文件 sheet_name:返回指定sheet,默認(rèn)索引0返回第一個(gè),也可用名稱,如果返回多個(gè)則可用列表,為None則返回全表 header:指定表頭,也可用列表指定多行 names:自定義列名,長度和Excel列長度必須一致 index_col:用作索引的列 usecols:讀取指定的列,參數(shù)為列表,如[0,1]表示第1和第2列讀取Excel文件,得到的結(jié)果是一個(gè)二維矩陣
# 默認(rèn)讀取第一個(gè)表單 df=pd.read_excel('1.xlsx')# 可以通過sheet_name來指定讀取的表單 df=pd.read_excel('1.xlsx',sheet_name='student')# 表格首行為無效數(shù)據(jù) 或 表格首行為空 ,header=1 rdexcle = pd.read_excel('1.xlsx',header=1)data=df.head() # 默認(rèn)讀取前5行的數(shù)據(jù) print("獲取到所有的值:\n{0}".format(data)) # 格式化輸出# 通過表單索引來指定要訪問的表單,0表示第一個(gè)表單 # 也可以采用表單名和索引的雙重方式來定位表單 # 也可以同時(shí)定位多個(gè)表單,方式都羅列如下所示 df=pd.read_excel('1.xlsx',sheet_name=['python','student']) # 可以通過表單名同時(shí)指定多個(gè) # df=pd.read_excel('1.xlsx',sheet_name=0) # 可以通過表單索引來指定讀取的表單 # df=pd.read_excel('1.xlsx',sheet_name=['python',1]) # 可以混合的方式來指定 # df=pd.read_excel('1.xlsx',sheet_name=[1,2]) # 可以通過索引 同時(shí)指定多個(gè) data=df.values # 獲取所有的數(shù)據(jù),注意這里不能用head()方法哦~ print("獲取到所有的值:\n{0}".format(data))查看屬性、列名、顯示前幾行、后幾行
data = pd.read_excel('1.xlsx') print('顯示表格的屬性:',data.shape) # 打印顯示表格的屬性,幾行幾列 print('顯示表格的列名:',data.columns) # 打印顯示表格有哪些列名 # head() 默認(rèn)顯示前5行,可在括號(hào)內(nèi)填寫要顯示的條數(shù) print('顯示表格前三行:',data.head(1)) # tail() 默認(rèn)顯示后5行,可在括號(hào)內(nèi)填寫要顯示的條數(shù) print('顯示表格后五行:',data.tail()) data = pd.read_excel('lemon.xlsx') data.columns=['ID','NAME'] # 設(shè)置表頭 data.set_index('ID',inplace=True) # inplace=True表示 在當(dāng)前表上修改。不用再新建表三、pandas操作Excel的行列
1:讀取指定的單行,數(shù)據(jù)會(huì)存在列表里面
# 讀取指定行 df=pd.read_excel('lemon.xlsx') # 這個(gè)會(huì)直接默認(rèn)讀取到這個(gè)Excel的第一個(gè)表單 data=df.ix[0].values#0表示第一行 這里讀取數(shù)據(jù)并不包含表頭,要注意哦! print("讀取指定行的數(shù)據(jù):\n{0}".format(data))2:讀取指定的多行,數(shù)據(jù)會(huì)存在嵌套的列表里面:
df=pd.read_excel('lemon.xlsx') data=df.ix[[1,2]].values # 讀取指定多行的話,就要在ix[]里面嵌套列表指定行數(shù) print("讀取指定行的數(shù)據(jù):\n{0}".format(data))3:讀取指定的行列:
df=pd.read_excel('lemon.xlsx') data=df.ix[1,2]#讀取第一行第二列的值,這里不需要嵌套列表 print("讀取指定行的數(shù)據(jù):\n{0}".format(data))4:讀取指定的多行多列值:
df=pd.read_excel('lemon.xlsx') data=df.ix[[1,2],['title','data']].values#讀取第一行第二行的title以及data列的值,這里需要嵌套列表 print("讀取指定行的數(shù)據(jù):\n{0}".format(data))5:獲取所有行的指定列
df=pd.read_excel('lemon.xlsx') data=df.ix[:,['title','data']].values#讀所有行的title以及data列的值,這里需要嵌套列表 print("讀取指定行的數(shù)據(jù):\n{0}".format(data))6:獲取行號(hào)并打印輸出
df=pd.read_excel('lemon.xlsx') print("輸出行號(hào)列表",df.index.values)輸出結(jié)果是: 輸出行號(hào)列表 [0 1 2 3]7:獲取列名并打印輸出
df=pd.read_excel('lemon.xlsx') print("輸出列標(biāo)題",df.columns.values)運(yùn)行結(jié)果如下所示: 輸出列標(biāo)題 ['case_id' 'title' 'data']8:獲取指定行數(shù)的值:
df=pd.read_excel('lemon.xlsx') print("輸出值",df.sample(3).values)#這個(gè)方法類似于head()方法以及df.values方法輸出值[[2 '輸入錯(cuò)誤的密碼' '{"mobilephone":"18688773467","pwd":"12345678"}'][3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}'][1 '正常登錄' '{"mobilephone":"18688773467","pwd":"123456"}']]9:獲取指定列的值:
df=pd.read_excel('lemon.xlsx') print("輸出值\n",df['data'].values)四:pandas處理Excel數(shù)據(jù)成為字典
df=pd.read_excel('lemon.xlsx') test_data=[] for i in df.index.values:#獲取行號(hào)的索引,并對(duì)其進(jìn)行遍歷:#根據(jù)i來獲取每一行指定的數(shù)據(jù) 并利用to_dict轉(zhuǎn)成字典row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()test_data.append(row_data) print("最終獲取到的數(shù)據(jù)是:{0}".format(test_data))最后得到的結(jié)果是:
最終獲取到的數(shù)據(jù)是: [{'title': '正常登錄', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, {'title': '輸入錯(cuò)誤的密碼', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, {'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, {'title': '充值輸入負(fù)數(shù)', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]總結(jié)
以上是生活随笔為你收集整理的python 第三方模块之 pandas 操作 excel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频通话 原理分析
- 下一篇: 如何抓取html请求,网页抓取工具如何进