python合并excel

news/2024/7/21 3:46:01 标签: python, excel, pandas

0 思路

注意:此代码1,2是将多个excel合并到一个excel,3是根据某个键进行合并,针对键的合并需要使用merge函数,实现excel的vlookup功能

主要使用pandas操作excel,然后写入excel

1. pandas读取excel后数据类型是pd.DataFrame

2. 将循环遍历的表都添加到一个DataFrame中

3. 然后保存到excel

1. 多个文件读取合并

python">'''
author : SnowMaple
time : 2023/11/30 9:24
'''

import pandas as pd 
import os import re # 用于存储所有要合并的Excel文件的文件名 

excel_files = ["1.xlsx", "2.xlsx", "3.xlsx","5.xlsx","6.xlsx"] # 创建一个用于存储所有数据的 combined_data = pd.DataFrame() # 逐个读取每个Excel文件的第一个sheet并合并 
for file in excel_files: 
    if os.path.isfile(file): # 确保文件存在 
        df = pd.read_excel(file, sheet_name=0) # 读取第一个sheet
        combined_data = combined_data.append(df, ignore_index=True) # 创建一个新的Excel文件来保存合并后的数据 
output_file = "combined_data3.xlsx"
combined_data.to_excel(output_file, index=False) 
print(f"合并后的数据已保存到 {output_file}")

2. 遍历文件夹读取

python">'''
author : SnowMaple
time : 2023/11/30 9:24
'''

import pandas as pd
import os
import re

# 用于存储所有要合并的Excel文件的文件名

pattern = re.compile(r"^\d")
# 创建一个用于存储所有数据的DataFrame
folder_path = "C:/kaggle_data/titanic"
combined_data = pd.DataFrame()
for filename in os.listdir(folder_path):
    if filename.endswith(".xlsx") and pattern.search(filename):
        print(filename)
        df = pd.read_excel(filename, sheet_name=0)  # 读取第一个sheet
        combined_data = combined_data.append(df, ignore_index=True)
        

# 创建一个新的Excel文件来保存合并后的数据
output_file = "combined_data3.xlsx"
combined_data.to_excel(output_file, index=False)

print(f"合并后的数据已保存到 {output_file}")

3. 实现vlookup功能 

根据某个键合并

python">'''
author : SnowMaple
time : 2023/11/30
'''

import pandas as pd
# 1. 读数据
A = pd.read_excel('.\厦门XXXXX有限公司_20230XXXXX3351.xlsx') 
#也可指定列名 converters={"列名1":str, "列名2":str}
B = pd.read_excel('.\XXXXX明细.xlsx')

# 2. 数据预处理:注意A表和B表指定合并的键要一致
B= B.rename(columns={"号码":"serial_number"})

# 3. 合并 写入excel中
df = pd.merge(left=A, right=B, on="serial_number", how="outer")
df.to_excel("1129.xlsx")


http://www.niftyadmin.cn/n/5230360.html

相关文章

qemu网络通信

TAP(官网参考地址) TAP,即Tunneling traffic access point,是一种在Linux上使用的虚拟网卡技术,它可以为应用程序提供安全的网络连接。可以利用TAP搭建桥接网络,bridge两端分别为host和qemu虚拟机。 安装…

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案

cesium不同版本对3dtiles的渲染效果不同,固定光照的优化方案,避免map.fixedLight true,导致的光照效果太强,模型太亮的问题。 问题来源: 1.Cesium1.47版本加载tileset.json文件跟Mars3d最新版加载文件存在差异效果 Cesium1.47…

时序预测 | Python实现TCN时间卷积神经网络价格预测

时序预测 | Python实现TCN时间卷积神经网络时间序列预测 目录 时序预测 | Python实现TCN时间卷积神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 时间卷积网络,TCN。 利用CNN技术处理时间序列数据。 卷基础层有三种,第一种是一维CNN,用于输…

说说过量 tcp pure ack 的利弊

tcp 的 ack 实在太多了,如果互联网上 80% 报文是 tcp,那么其中 1/3 的报文都是 ack,此前写过几篇短文,比如 丢弃一些 pure ack 和 注入或利用 pure ack。 简单说,tcp 依靠 ack 提供 self-clock,发送 data …

Springboot2+WebSocket

一、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency> 二、添加配置 新增配置文件 config/WebSocketConfig.java import org.springframewo…

redis相关题

1 什么是Redis Redis(Remote Dictionary Server) 是⼀个使⽤ C 语⾔编写的&#xff0c;开源的&#xff08;BSD许可&#xff09;⾼性能⾮关系型&#xff08;NoSQL&#xff09;的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串&#xff0c;…

【超详细】vue项目:Tinymce富文本使用教程以及踩坑总结+功能扩展

【【超详细】vue项目&#xff1a;Tinymce富文本使用教程以及踩坑总结功能扩展 引言&#xff1a;一、 开始二、快速开始1、安装Tinymce 三、封装成Vue组件1、文件结构2、index.vue3、dynamicLoadScript.js4、plugin.js5、toolbar.js 四、使用Tinymce组件五、业务逻辑实现1、添加…

什么是透明加密技术?透明加密有哪些优势?

透明加密技术是一种特殊的加密方法&#xff0c;它在用户毫不知情的情况下对数据进行加密和解密&#xff0c;保障了数据的安全性。用户在使用这种加密技术时&#xff0c;无需改变他们的日常操作习惯&#xff0c;加密和解密过程在后台自动进行&#xff0c;使得用户在享受数据安全…