Pandas是python的一個數(shù)據(jù)分析包,納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。
Pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。
Pandas官方文檔:https://pandas.pydata.org/pandas-docs/stable/
一、安裝包
pandas處理Excel需要xlrd、openpyxl依賴包
pip3 install pandas pip3 install xlrd pip3 install openpyxl
二、創(chuàng)建Excel,寫入數(shù)據(jù)
import pandas as pd from pandas import DataFrame #創(chuàng)建DataFrame可以用下面字典,也可以用數(shù)組ndarray dic1 = {'標(biāo)題列1': ['張三','李四'], '標(biāo)題列2': [80, 90] } df = pd.DataFrame(dic1) df.to_excel('1.xlsx', index=False)
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返回第一個,也可用名稱,如果返回多個則可用列表,為None則返回全表
header:指定表頭,也可用列表指定多行
names:自定義列名,長度和Excel列長度必須一致
index_col:用作索引的列
usecols:讀取指定的列,參數(shù)為列表,如[0,1]表示第1和第2列
三、讀取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)
四、其它實例
1、批量轉(zhuǎn)換.xls文件為.xlsx文件
import os import pandas as pd from pandas import DataFrame def xlsToXlsx(srcPath, destPath): """srcPath路徑的所有.xls文件,用.xlsx格式保存于destPath路徑""" for filename in os.listdir(srcPath): filePath = os.path.join(srcPath,filename) if not filename.endswith(".xls"): continue xlsxPath = destPath + '\\' + filename + 'x' data = pd.DataFrame(pd.read_excel(filePath)) data.to_excel(xlsxPath, index=False) srcPath = r'D:\python\xls' destPath = r'D:\python\xlsx' xlsToXlsx(srcPath, destPath)
2、同一格式的多個Excle文件,合并到一個Excel文件中
例如把左邊2個Excel合并成右邊1個Excel
import os import pandas as pd from pandas import DataFrame import numpy as np def excelMerge(srcPath, destPath): """同種格式的Excel文件合并""" fileList = [] #所有Excel文件列表 for filename in os.listdir(srcPath): filePath = os.path.join(srcPath,filename) if not filename.endswith(".xlsx"): continue fileList.append(filePath) resultData = pd.read_excel(fileList[0]) #第一個Excel文件數(shù)據(jù) colName = resultData.columns.values #Excel文件標(biāo)題 fileList.pop(0) #列表中刪除第一個文件 for filepath in fileList: fileData = pd.read_excel(filePath) resultData = np.concatenate((resultData, fileData), axis=0) #合并Excel數(shù)據(jù) df = pd.DataFrame(resultData, columns = colName) df.to_excel(destPath, index=False) #保存 srcPath = r'D:\python\xlsx' destPath = r'D:\python\list.xlsx' excelMerge(srcPath, destPath)
聯(lián)系客服