Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/
一、安装包
pandas处理Excel需要xlrd、openpyxl依赖包
pip3 install pandas pip3 install xlrd pip3 install openpyxl
二、创建Excel,写入数据
import pandas as pd from pandas import DataFrame #创建DataFrame可以用下面字典,也可以用数组ndarray dic1 = {'标题列1': ['张三','李四'], '标题列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,默认索引0返回第一个,也可用名称,如果返回多个则可用列表,为None则返回全表
header:指定表头,也可用列表指定多行
names:自定义列名,长度和Excel列长度必须一致
index_col:用作索引的列
usecols:读取指定的列,参数为列表,如[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['标题列1'].values) #新增列 data['标题列3'] = None #新增行 data.loc[3] = ['王五', 100, '男'] #删除行:axis=0 data = data.drop([0,1], axis=0) #删除列:axis=1 data.drop('标题列3', axis=1) #保存 DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)
四、其它实例
1、批量转换.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文件数据 colName = resultData.columns.values #Excel文件标题 fileList.pop(0) #列表中删除第一个文件 for filepath in fileList: fileData = pd.read_excel(filePath) resultData = np.concatenate((resultData, fileData), axis=0) #合并Excel数据 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)