Python编程练习-求excel数据的余弦相似度
余弦相似度
余弦相似度是一种计算相关性的方法,它是将个体的指标数据映射到向量空间,计算两个向量之间的夹角余弦值作为两个变量之间的相似性度量。
两个向量m和n之间的余弦相似度计算公式为:
c o s α = m n ∣ m ∣ ∣ n ∣ cos\alpha=\frac{mn}{|m||n|} cosα=∣m∣∣n∣mn c o s < x , y > = ∑ i = 1 n x i y i ∑ i = 1 n x i 2 ∑ i = 1 n y i 2 cos<x,y>=\frac{\sum_{i=1}^{n}x_{i}y_{i}}{\sqrt {\sum_{i=1}^{n}x_{i}^{2}}\sqrt {\sum_{i=1}^{n}y_{i}^{2}}} cos<x,y>=∑i=1nxi2 ∑i=1nyi2 ∑i=1nxiyi
举例
求excel表格中A列、B列、C列、D列两两之间的余弦相关度,并将结果写入表格中
代码
from openpyxl import load_workbook #导入程序包wb = load_workbook("a.xlsx") #加载excel文件
ws = wb.active #工作表
rows = []
for row in ws.iter_rows():rows.append(row) #将工作表中数据导入rows中for q in range(0,4): #求余弦相关系数for w in range(q+1,4):a1 = 0a2 = 0a3 = 0for i in range(0,len(rows)):a1 += rows[i][q].value * rows[i][w].value #余弦相关系数的分字for j in range(0,len(rows)):a2 += pow(rows[j][q].value,2)a2 = pow(a2,.5) #余弦相关系数分母的前部分for m in range(0,len(rows)):a3 += pow(rows[m][w].value,2)a3 = pow(a3,.5) #余弦相关系数分母的后部分ws.cell(row=q+1, column=w+5, value=a1/(a2*a3)) #向单元格中写入结果wb.save("a.xlsx") #文件保存
结果
遇到的问题
- 应将excel关闭,再运行程序,否则程序报错
- 向单元格写入结果,最初想用ws.write(),但是一直报错,所以改用了ws.cell(row=行序号, column=列序号, value=值),注意这个序号从1开始
一个简单的编程实例,里面有python对excel数据的操作,这也是第一次写博客,如有问题请指正。
Python编程练习-求excel数据的余弦相似度相关推荐
- python快速求EXCEL数据权重
python快速求EXCEL数据权重 1.数据 2.9,1.13,26.98,0.97 3.3,1.16,26.16,0.99 2.5,1.29,27.2,0.99 3.1,</
- 如何利用Python编程批量处理Excel来提高日常工作效率!
最近的工作遇到一个需求,整理多个相同格式但是不标准的Excel表格,最终汇总成一个Excel表格,并进行数据透视分析. 表格内涉及到合并的单元格,不同表格表头位置有偏差等问题.目标是将所有表格内容相同 ...
- python导入excel数据-Python导入数值型Excel数据并生成矩阵操作
riginal_Data 因为程序是为了实现对纯数值型Excel文档进行导入并生成矩阵,因此有必要对第五列文本值进行删除处理. Import_Data import numpy as np impor ...
- python处理大量excel数据-python如何批量处理excel数据?
python如何批量处理excel数据? python批量处理excel数据的方法: excel的内容需要有规律,python才能按顺序读取出来. 比如按行按列读取. 一.安装xlrd模块 到pyth ...
- python将excel数据合并_Python语言之Python合并多个Excel数据
本文主要向大家介绍了Python语言之Python合并多个Excel数据,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 安装模块 1.找到对应的模块 http://www.pyt ...
- python的xlrd读取Excel数据失败: raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘) ...
python的xlrd读取Excel数据失败: raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlr ...
- python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...
这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...
- python在excel中的应用-Python利用pandas处理Excel数据的应用详解
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...
- python与excel的应用-Python利用pandas处理Excel数据的应用
最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...
最新文章
- 第十六届全国大学生智能车竞赛技术报告 | 单车拉力组- 上海海事大学-骑摩托的蒙娜丽莎
- ubuntu spyder 不能输入中文
- 30年货币翻了300倍!如何能跑赢印钞机?
- Redis-stat的安装与使用
- ssas如何创建分区_如何基于SSAS信息创建Excel报告
- FBI 连续第三次发布关于国家黑客利用 Kwampirs 发动全球供应链攻击的警告
- IDE已破解,不用预热,马上进入「微信小程序」开发
- Android APP启动图标尺寸
- 显示器性能测试软件,MonitorTest(显示器性能测试软件) V4.0.1001 官方版
- wincc工程组态论文_2020/12/18【推荐】几种常用工控组态软件介绍,这次找齐了,你懂哪种?...
- springboot Vue java学生宿舍报修管理系统源码介绍
- Servlet(互联网通信基础及实例)(上)
- vtd和vt的区别_vtvi和v的区别是什么?
- [三分]求凹凸函数最值
- 拿蚂蚁头条快手offer怎么选?网友:第一次见头条比快手offer低
- SQLZOO练习答案(一):SELECT names/zh
- c语言求斐波那契数列n项以及前n项和
- 你从未见过的“地狱级”烂项目
- 前端项目中上传图片如何实现的
- 433~458(flex+携程网移动端首页)