Python不同excel的合并操作

2023-11-11

Python不同excel的合并操作(23333333333我的第一篇博客,有一点瞎搞的感觉(0-0))
问题描述:对7个类似下图的Excel进行合并。
在这里插入图片描述
合并的最终效果

在这里插入图片描述
Excel文件需要可以找我

技术分析:

  1. 获取表格中相同格式的部分进行操作。
  2. 对除了人均地区生产总值的其他数值可以直接相加
  3. 人均地区生产总值由最终的地区生产总值\人口数
    附上代码
"""
Created on Thu May 16 16:07:36 2019
实现的功能:利用Python将两个Excel表格对应位置相加,并存储在一个新的Excel文件中。
但是因两个Excel表的第一列和第一行都是一样的,所以不需要相加,保持原样存储至新的Excel表格中:


@author: 17319
"""
import xlrd
import xlwt
import os



def combine_excel(file_1,file_2,i2):
    wb_pri = xlrd.open_workbook(file_1)   #打开原始文件
    wb_tar = xlrd.open_workbook(file_2)   #打开目标文件
    wb_result = xlwt.Workbook()           #新建一个文件,用来保存结果
    sheet_result = wb_result.add_sheet('Sheet1',cell_overwrite_ok=True)

    sheet_pri = wb_pri.sheet_by_index(0)  # 通过index获取每个sheet
    sheet_tar = wb_tar.sheet_by_index(0)  # 通过index获取每个sheet
    ncols = sheet_pri.ncols               # Excel列的数目  原Excel和目标Excel的列表的长度相同
    row_0=sheet_pri.row_values(0)         #获取第一行的值
    col_0=sheet_pri.col_values(0)         #获取第一列的值
    for i,key in enumerate(row_0):       #写入新Excel表的第一行
        sheet_result.write(0,i,key)
    for i,key in enumerate(col_0):        #写入新Excel表的第一列
        sheet_result.write(i,0,key)
    for i1 in range(1,ncols):              #将Excel表格对应位置相加
        if(i1!=3):
            l_p = sheet_pri.col_values(i1,start_rowx=1,end_rowx=None)#每列的元素
            l_t = sheet_tar.col_values(i1,start_rowx=1,end_rowx=None)
            l_r=[]
            
            for i in range(0, len(l_p)):#除了第一次都是字符串,后面都是一个float,一个字符串
                l_p_s=l_p[i]
                l_t_s=l_t[i]
                if isinstance(l_p[i],str):#去','去' '
                    l_p[i]=l_p[i].replace(',', '')
                    l_p_s=l_p[i].strip()
                if isinstance(l_t[i],str):
                    l_t[i]=l_t[i].replace(',', '')
                    l_t_s=l_t[i].strip()
                    
                if l_p_s=='' and l_t_s!='':
                    l_r.append(float(l_t[i]))
                elif l_t_s=='' and l_p_s!='':
                    l_r.append(float(l_p[i]))
                elif l_t_s!='' and l_p_s!='':
                    l_r.append(float(l_p[i])+float(l_t[i]))
                else:
                    l_r.append(0)
            print(l_r)
            for j,key in enumerate(l_r):
                sheet_result.write(j+1,i1,key)
    wb_result.save(r"./people/save"+str(i2)+".xls")
 
if __name__=="__mian__": 
    path=r'./people'
    filenames = os.listdir(path)#获取所有xls
    file_1 = path+"/"+filenames[0]
    file_2 =  ''
    for i2, filename in enumerate(filenames):
        if i2>0:
            file_2=path+"/"+filename
            combine_excel(file_1,file_2,i2)
            file_1=path+"/save"+str(i2)+".xls"
            
            print(file_2)
    for i2 in range(1,7):
        try:
            os.remove(r"./people/save"+str(i2)+".xls")     
        except Exception:
            print("异常")
    
    #最后计算人均,第四个
    from xlutils.copy import copy        #导入copy模块
    rb = xlrd.open_workbook(r"./people/save7.xls")    #打开weng.xls文件
    wb = copy(rb)                          #利用xlutils.copy下的copy函数复制
    ws = wb.get_sheet(0)                   #获取表单0
    sheet = rb.sheets()[0] 
    for i in range(1,21):
         #获取单元格的值:
        ws.write(i, 3,float(sheet.cell(i,2).value)/float(sheet.cell(i,1).value) )             #改变(0,0)的值
    wb.save(r"./people/save8.xls")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python不同excel的合并操作 的相关文章

  • 测试交互式Python程序

    我想知道python的哪些测试工具支持交互式程序的测试 例如 我有一个由以下人员启动的应用程序 python dummy program py gt gt Hi whats your name Joseph 我想要仪器Joseph所以我可以
  • 如何在python中确定过去的时区特定日期是否是夏令时?

    有没有办法检查特定时区在我指定的日期是否处于夏令时 test dt datetime year 2015 month 2 day 1 pst pytz timezone America Los Angeles test dt pst loc
  • 如何使用 Twython 将 oauth_callback 值传递给 oauth/request_token

    Twitter 最近刚刚强制执行以下规定 1 您必须通过oauth callbackoauth request token 的值 这不是可选的 即使您已经在 dev twitter com 上设置了一个 如果您正在执行带外 OAuth 请通
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • Django 说“id 可能不为 NULL”,但为什么会这样呢?

    我今天要疯了 我只是尝试插入一条新记录 但它返回了 post blogpost id 可能不为 NULL 错误 这是我的模型 class BlogPost models Model title models CharField max le
  • 将相同的 Patch 实例添加到 matplotlib 中的多个子图中

    我正在尝试将补丁的相同实例添加到 matplotlib 中的多个轴 这是最小的例子 import matplotlib pyplot as mpl plt import matplotlib patches as mpl patches f
  • 如何解决CDK CLI版本不匹配的问题

    我收到以下错误 此 CDK CLI 与您的应用程序使用的 CDK 库不兼容 请将CLI升级到最新版本 云程序集架构版本不匹配 支持的最大架构版本为 8 0 0 但发现为 9 0 0 发出后cdk diff命令 我确实跑了npm instal
  • 如何在每次运行 python 程序时添加新列

    我希望我的表的第一列作为卷号 第二列作为名称 每当我运行 python 程序时 我想在表中添加一列日期 在这个新列中 我想填充从 user list 获得的列表将包含值 P A P P 等 如何处理 我尝试首先通过 alter 命令添加一列
  • Python:绘制甘特图的模块

    有没有一个好的Python绘图模块甘特图 http en wikipedia org wiki Gantt chart 我试过了开罗情节 http linil wordpress com 2008 09 16 cairoplot 11 但它
  • Python 中使用 globals() 的原因?

    Python 中有 globals 函数的原因是什么 它只返回全局变量的字典 这些变量已经是全局的 所以它们可以在任何地方使用 我只是出于好奇而问 试图学习Python def F global x x 1 def G print glob
  • python lxml 使用iterparse编辑并输出xml

    我已经在 lxml 库上摆弄了一段时间了 也许我没有正确理解它 或者我错过了一些东西 但我似乎无法弄清楚在捕获某个 xpath 后如何编辑文件并且然后能够在逐个元素解析时将其写回到 xml 中 假设我们有这个 xml 作为示例
  • 在 Qt 5 中嵌入 Python

    我想将 Python 解释器嵌入到 Qt 5 应用程序中 我在 Qt 5 中有一个工作应用程序 但是当我把 include
  • Excel VBA 循环遍历 10,000 组行,每组包含 20 行

    如何将当前按行循环的 Excel VBA 代码转换为循环 20 行集 据我了解 Step函数可能与以下行一起使用 Range V1 Value Application Index vInput1 r 0 但是 我不确定如何修改代码以循环遍历
  • datetime strftime 不输出正确的时间戳

    下列 gt gt gt from dateutil parser import parse gt gt gt parse 2013 07 02 00 00 00 0000 datetime datetime 2013 7 2 0 0 tzi
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • 重写 PyGObject 中的虚拟方法

    我正在尝试实施高宽几何管理 http developer gnome org gtk3 3 2 GtkWidget html geometry management在 GTK 和 Python 中用于我的自定义小部件 我的小部件是来自的子类
  • 如何正确将 tflite_graph.pb 转换为 detector.tflite

    我正在使用tensorflow对象检测API使用tensorflow中的ssdlite mobilenet v2 coco 2018 05 09来训练自定义模型模型动物园 https github com tensorflow models
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • 以编程方式创建验证列表

    我有一组从外部源进入 VBA 代码的数据 我希望能够分配该数据以用作此工作簿中一张工作表的单元格下拉框中的验证 但是 我不想将该数据复制到工作表中 然后使用命名范围 可能有相当多的数据 而且这感觉不是很有效 我确信一定有办法 但我还没有找到
  • 使用 python/scipy 进行 voronoi 和 lloyd 松弛

    如何使用 Qhull 确定哪些 voronoi 单元 按索引 是 正确的 由 现有顶点 组成 我正在尝试使用 LLoyds 算法和 scipy spatial Voronoi 它是 Qhull 的包装器 生成的输入来执行约束松弛 就代码而言

随机推荐

  • CTF系列之Web——SQL注入

    前言 在刚学习SQL注入的过程中非常艰难 查资料的时间有一周这么长 点开的网页也不下一千 认真读的也最少有两百 可是能引导入门的真的没几篇 都是复制来复制去的 没意思 感觉就是在浪费时间 有很多知识点都很散 很少能考到一片吧所有知识点总结在
  • Hutool-core 核心------cn.hutool.core.bean包下的DynaBean、BeanDesc、BeanDesc.PropDesc、BeanPath、BeanUtil、

    1 DynaBean 动态Bean 封装实例对象 进行反射调用 2 BeanDesc Bean信息描述做为BeanInfo替代方案 3 BeanDesc PropDesc 属性描述 4 BeanPath Bean路径表达式对象 用于属性检
  • FPGA面试真题解析(2)

    5 下面哪种不是组合逻辑电路功能描述方法 硬件逻辑实习岗 A 真值表 B 布尔方程 C 状态机 D 逻辑框图 解析 考察数字电路中对组合逻辑电路的认识 A选项真值表是使用于逻辑中的一类数学用表 用来计算逻辑表示式在每种论证 即每种逻辑变量取
  • C++学习--cin不支持录入空格

    https blog csdn net EXLsunshine article details 28440629 举个栗子 当使用cin功能然后键盘输入 aaa bbb ccc 时 cin的那个字符串只会保留 aaa
  • Apache解析漏洞

    Apache解析漏洞主要是因为Apache默认一个文件可以有多个用 分割得后缀 当最右边的后缀无法识别 mime types文件中的为合法后缀 则继续向左看 直到碰到合法后缀才进行解析 以最后一个合法后缀为准 1 如图 最后一个后缀名为 x
  • IPC:消息队列

    消息队列 gcc messageQueue c o mq lrt mqd t mq send mqd t mqdes const char msg ptr size t msg len unsigned msg prio msg prio
  • OpenCV 实现读取摄像头、视频读取保存 (C++)

    一 读取摄像头 重点语句 VideoCapture imshow 原理 使用VideoCapture语句读取摄像头 再利用while一次次将VideoCapture所读取的数据利用imshow语句一帧帧地读取出来 include
  • 基于多任务学习和GCN的交通路网出租车需求预测

    1 文章信息 文章题目为 Multitask Learning and GCN Based Taxi Demand Prediction for a Traffic Road Network 是一篇发表在Sensors期刊上的有关基于多任务
  • 解决vista和win10在windows服务中交互桌面权限问题:穿透Session 0 隔离

    服务 Service 对于大家来说一定不会陌生 它是Windows 操作系统重要的组成部分 我们可以把服务想像成一种特殊的应用程序 它随系统的 开启 关闭 而 开始 停止 其工作内容 在这期间无需任何用户参与 Windows 服务在后台执行
  • python数据分析面试_python数据分析面试

    1 如何利用SciKit包训练一个简单的线性回归模型 利用linear model LinearRegression 函数 Create linear regression object regr linear model LinearRe
  • vs code配置c语音环境

    要在VS Code中配置C语言环境 您可以按照以下步骤进行操作 安装C C 扩展程序 在VS Code中 您可以通过搜索 C C 来找到C C 扩展程序 安装该扩展程序后 您可以在VS Code中使用C C 语言编写代码 创建C C 项目
  • C++入门-----拷贝构造

    学习目标 1 拷贝构造函数的概念及使用 2 特征 3 注意的点 3 1 防止无穷递归 3 2 防止原对象被修改 4 默认生成拷贝构造 4 1 浅拷贝 4 2 为什么要自己实现拷贝构造函数 4 3 其对于内置类型和自定义类型的处理方式 5 总
  • vue响应式数据-修改对象的属性值,视图不更新

    目录 bug复现 原因 怎么在console中判断是不是响应式数据 怎样才能设置为响应式数据 bug复现 在代码中给一个对象 新增多个属性并赋值 然后在另一个方法中修改对象其中一个属性的值 发现数据改变 页面视图并没有更新 data ret
  • 在Vue.js的public目录下的index.html文件中,可以使用EJS(Embedded JavaScript)模板语法来插入变量。

    这个示例中 和被用于插入对应的变量 这些变量将被EJS模板引擎根据环境和配置进行替换 同样 会将htmlWebpackPlugin插件的options title属性插入到
  • vue中动态水印

    效果 一 根元素div上增加 div class rootZhy div 二 增加方法 watermarkZhy content let container document body let width 120px let height
  • BeanCreationException: Error creating bean with name ‘configurationPropertiesBeans‘ defined in class

    1 现象 启动 SpringCloud项目时报错 2 解决方案 2 1 spring cloud dependencies添加到dependencyManagement标签
  • STM32开发(六)STM32F103 通信 —— RS485 Modbus通信编程详解

    上一篇 主目录 下一篇 文章目录 一 基础知识点 二 开发环境 三 STM32CubeMX相关配置 1 STM32CubeMX基本配置 2 STM32CubeMX RS485 相关配置 四 Vscode代码讲解 五 结果演示以及报文解析 六
  • Spring Boot 添加拦截器

    文章目录 Spring Boot 添加拦截器 方法1 新增拦截器 配置拦截器 方法2 新增拦截器 配置拦截器 拦截所有响应 Spring Boot 添加拦截器 介绍一下在Spring Boot 2 0 0以上版本如何添加拦截器 方法1 新增
  • html烟花代码在线编程,canvas实现烟花的示例代码

    前言 马上过年了 我打算在后台里面偷偷地埋个新春祝福 放烟花的彩蛋 项目是基于react typescript的 因此最后封装成了一个组件 设置好开启时间就可以显示了 目录结构 目录结构大致如下 我们将烟花分为两个阶段 一个是未炸开持续上升
  • Python不同excel的合并操作

    Python不同excel的合并操作 23333333333我的第一篇博客 有一点瞎搞的感觉 0 0 问题描述 对7个类似下图的Excel进行合并 合并的最终效果 Excel文件需要可以找我 技术分析 获取表格中相同格式的部分进行操作 对除