numpy(科学计算,矩阵演算)与pandas(数据分析)
numpy(科学计算,矩阵演算)与pandas(数据分析)
Numpy ndarray
1.使用array()将列表等容器转换为ndarray类型的数组
2.将ndarray数据看作矩阵,可以进行整体的数学运算
ndarray类型有个方法tolist()可以直接转换成列表
3.使用tolist()方法将ndarray转换为普通的python列表
4.使用numpy模块提供的各种函数对数组进行统计运算
自带sin log等函数
5.使用reshape将一维结构转换为二维结构的ndarray
a.reshape(行数,列数) 根据原数组a,生成一个指定行数列数的新二维数组
6.矩阵转置.T
numpy搭配xlwings的一个完整案例
import numpy as np
import xlwings as xw
app = xw.App()
wb = app.books.open('02.xlsx')
gongzi = np.array(wb.sheets['计件工资'].range('C4:E7').value)
jiangjin = np.array(wb.sheets['出勤奖励'].range('D5:D16').value).reshape(4, 3)
print('gongzi', gongzi)
print('jiangjin', jiangjin)
实发 = gongzi + jiangjin
wb.sheets['实发工资'].range('C5:F7').value = 实发.T
wb.save('02.xlsx')
wb.close()
app.quit()
import xlwings as xw
# import pandas as pd
# 打开Excel应用程序
app = xw.App()
# 打开工作簿
wb = app.books.open('工作簿1.xlsx')
# 选择工作表
ws = wb.sheets[0]
# 读取单元格的值
n1 = ws.range('A3:A16901').value
n2 = ws.range('B3:B16890').value
# 往表格中写入数据
ws.range('D2').options(transpose=True).value = list(set(n1) - set(n2))
ws.range('E2').options(transpose=True).value = list(set(n2) - set(n1))
ws.range('F2').options(transpose=True).value = list(set(n1) & set(n2))
# 往表格中写入数据
print('n1', n1)
print('n2', n2)
# 保存并关闭工作簿
wb.save()
wb.close()
# 关闭应用程序
app.quit()
pandas
pandas的excel读写使用了xlrd和openpyxl第三方模块,需要先安装才能使用
import pandas as pd
工资 = pd.read_excel('02.xlsx', '计件工资')
print(工资)
工资数据 = 工资.iloc[2:, 2:]
print(工资数据)
出勤 = pd.read_excel('02.xlsx', '出勤奖励')
print(出勤)
出勤数据 = 出勤.iloc[3:, 3:]
出勤数据 = 出勤数据.values.reshape(4, 3)
实发 = 工资数据 + 出勤数据
实发.to_excel('实发工资.xlsx', '实发工资')
print(出勤数据)
print("实发",实发)
注意:to_excel 会覆盖原Excel文件,所以不要用to_eexcel向已经存在的工作簿中写入数据
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员小航
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果