一 xlwings安装与功能介绍
使用特定模块前,需要在程序最前面进行模块导入,和JAVA导入依赖包一样。
import 模块名
也可以加上from语句导入特定的子模块(主要是防止某些模块太大影响加载速度)
from 模块名 import 函数名(也可以用*代表所有)
1.1 os模块
os模块包含了与操作系统相关的一些功能,加上海量的辅助功能包,可以实现非常强大的功能。
getcwd():获取当前运行pytho代码文件的路径
import os
path = os.getcwd()
print(path)
以上程序会输出vscode定义的path工程文件的存储路径。
listdir():获取某个文件夹所有文件和子文件夹的名称
import os
path = 'd:\\python'
list = os.listdir(path)
print(list)
1.2 excel相关的模块
在处理Excel的时候需要对操作系统的文件进行操作,所以通常需要引入OS模块。
下图列举了与Excel高度相关的一些模块,后面用的比较多的是xlwings,其他模块可能会少量使用。
二 xlwings功能介绍
2.1 操作工作簿
- 创建新的工作簿
import xlwings as xw # 引入xlwings app = xw.App(visible=True,add_book=False) # 声明app workbook = app.books.add() # 新增workbook workbook.save(r'd:\pytest\test.xlsx') # 存储到本地路径 app.quit() # 退出APP
- 打开已经存在的工作簿
import xlwings as xw # 引入xlwings
app = xw.App(visible=True,add_book=False) # 声明app
try:
workbook = app.books.open(r'd:\pytest\test1.xlsx')
except FileNotFoundError:
print('不存在的文件!')
2.2 操作工作表和单元格
import xlwings as xw # 引入xlwings
app = xw.App(visible=True,add_book=False) # 声明app
try:
workbook = app.books.open(r'd:\pytest\test.xlsx')
except FileNotFoundError:
print('不存在的文件!')
worksheet = workbook.sheets.add('产品统计表')
worksheet.range('A1').value = '编号'
workbook.save()
workbook.close()
app.quit()
三 Numpy
NumPy(Numberical Python),是一个高效的、强大的数学计算模块,用于数学分析与数学计算。
通常在做Excel大数据分析时需要用到Numpy与Pandas相结合。
3.1 数组
和JAVA程序一样,数组分为一维数组和多位数组,一维数组与列表有相似之处。
import numpy as np
a = [1,2,3,4]
b = np.array([1,2,3,4])
print(a)
print(b)
print(type(a))
print(type(b))
np.arange(para1) #只有一个参数:起点默认为0,para1为终点,步长为1,左闭右开
np.arange(para1,para2) #两个参数:起点para1,终点para2,步长为1,左闭右开
np.arange(para1,para2,para3) #三个参数:起点para1,终点para2,步长para3,左闭右开
import numpy as np
x = np.arange(5)
print(x)
y = np.arange(5,10)
print(y)
z = np.arange(5,10,2)
print(z)
得到输出如下
random()函数: 创建随机一维数组。
import numpy as np
x = np.random.randn(3) #服从正态分布 均值0,标注差为1
print(x)
reshape(): 创建二维数组
import numpy as np
y = np.arange(12).reshape(3,4)
print(y)
randint() 创建随机整数二维数组
import numpy as np
e = np.random.randint(0,10,(4,4))
print(e)
四 pandas-数据分析与清洗
pandas模块是基于NumPy的一个开源Python模块,应用于数据分析,数据清洗和数据准备等工作。pandas提供了非常直观的数据结构以及强大的数据处理功能,基本上Excel能够做到的,都可以通过pandas实现。
pandas包含Series和DataFrame两种数据结构。
4.1 Series
类似于通过NumPy模块创建的一维数据,不同的是Series对象不仅包含数值,还包含一组索引。
import pandas as pd
s = pd.Series(['丁一','王二','张三'])
print(s)
4.2 DataFrame
DataFrame是一个二维数据表格结构。
3.5.1 二维数据表格DataFrame的创建与索引的修改
- DataFrame创建
DataFrame()函数:基于列表创建DataFrame
import pandas as pd
a = pd.DataFrame([[1,2],[3,4],[5,6]])
print(a)
- 自定义行与列索引
import pandas as pd
a = pd.DataFrame([[1,2],[3,4],[5,6]],columns=['date','score'],index=['A','B','C'])
print(a)
另外一种定义方法
import pandas as pd
a = pd.DataFrame()
date = [1,3,5]
score = [2,4,6]
a['date'] = date
a['score'] = score
print(a)
- 通过字段创建DataFrame
通过字段创建DataFrame会默认以键名作为列索引
import pandas as pd
b = pd.DataFrame({'a':[1,3,5],'b':[2,4,6]},index=['X','Y','Z'])
print(b)