余弦相似度

余弦相似度是一种计算相关性的方法,它是将个体的指标数据映射到向量空间,计算两个向量之间的夹角余弦值作为两个变量之间的相似性度量。

两个向量mn之间的余弦相似度计算公式为:
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=1n​xi2​ ​∑i=1n​yi2​ ​∑i=1n​xi​yi​​

举例


求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数据的余弦相似度相关推荐

  1. 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,</

  2. 如何利用Python编程批量处理Excel来提高日常工作效率!

    最近的工作遇到一个需求,整理多个相同格式但是不标准的Excel表格,最终汇总成一个Excel表格,并进行数据透视分析. 表格内涉及到合并的单元格,不同表格表头位置有偏差等问题.目标是将所有表格内容相同 ...

  3. python导入excel数据-Python导入数值型Excel数据并生成矩阵操作

    riginal_Data 因为程序是为了实现对纯数值型Excel文档进行导入并生成矩阵,因此有必要对第五列文本值进行删除处理. Import_Data import numpy as np impor ...

  4. python处理大量excel数据-python如何批量处理excel数据?

    python如何批量处理excel数据? python批量处理excel数据的方法: excel的内容需要有规律,python才能按顺序读取出来. 比如按行按列读取. 一.安装xlrd模块 到pyth ...

  5. python将excel数据合并_Python语言之Python合并多个Excel数据

    本文主要向大家介绍了Python语言之Python合并多个Excel数据,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 安装模块 1.找到对应的模块 http://www.pyt ...

  6. 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 ...

  7. python绘制动态图表怎么存下来_用python如何实现导入excel数据后自动生成图表?python如何实现交互式动态图表?...

    这个需求涉及的环节太多了.导入excel文件,获取数据 -- 需要xlrd模块把数据导入python 2. 设定输出图表类型 -- 需要matplot模块.根据数据复杂度,可能需要ETL,那么需要pa ...

  8. python在excel中的应用-Python利用pandas处理Excel数据的应用详解

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

  9. python与excel的应用-Python利用pandas处理Excel数据的应用

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用p ...

最新文章

  1. 第十六届全国大学生智能车竞赛技术报告 | 单车拉力组- 上海海事大学-骑摩托的蒙娜丽莎
  2. ubuntu spyder 不能输入中文
  3. 30年货币翻了300倍!如何能跑赢印钞机?
  4. Redis-stat的安装与使用
  5. ssas如何创建分区_如何基于SSAS信息创建Excel报告
  6. FBI 连续第三次发布关于国家黑客利用 Kwampirs 发动全球供应链攻击的警告
  7. IDE已破解,不用预热,马上进入「微信小程序」开发
  8. Android APP启动图标尺寸
  9. 显示器性能测试软件,MonitorTest(显示器性能测试软件) V4.0.1001 官方版
  10. wincc工程组态论文_2020/12/18【推荐】几种常用工控组态软件介绍,这次找齐了,你懂哪种?...
  11. springboot Vue java学生宿舍报修管理系统源码介绍
  12. Servlet(互联网通信基础及实例)(上)
  13. vtd和vt的区别_vtvi和v的区别是什么?
  14. [三分]求凹凸函数最值
  15. 拿蚂蚁头条快手offer怎么选?网友:第一次见头条比快手offer低
  16. SQLZOO练习答案(一):SELECT names/zh
  17. c语言求斐波那契数列n项以及前n项和
  18. 你从未见过的“地狱级”烂项目
  19. 前端项目中上传图片如何实现的
  20. 433~458(flex+携程网移动端首页)

热门文章

  1. FPGA VGA图片显示(vga_top)
  2. c#中获取当月的最后一天的最后一秒钟以及第一天
  3. 五月集训(第七日)哈希表
  4. 远程进服务器怎么全屏显示,远程服务器怎么全屏
  5. 个人申办在职人才引进
  6. 亚马逊新品如何测款 怎样快速打造出爆款
  7. 换天空的软件叫什么?原来有这几个软件
  8. openGauss单机版升级示例(2.0.1—>3.1.1)
  9. Android培训班 66 dex文件打开流程
  10. 多功能智能感应台灯设计(硬件)