当前位置: 首页 > news >正文

Python CSV 合并到多个sheet工作表

目标

将多个CSV文件,合并到一个Excel文件中的,多个sheet工作表。

前言

网上大多方法都是将csv直接合并在一起,也不分别创建sheet表。
还有一些解答说CSV不支持合并到多个sheet表。
Python多个CSV文件 合并到多个sheet工作表 完美解决

网上有用宏命令的,我试了,但是只能导入一个sheet表。也有用python的,大多都没什么用。

尽管困难重重,最后终于还是利用pandas库实现了目标。

开始

下面的代码用到了,两个带数据的csv文件。(2019-04-01.csv和2019-04-02.csv)

import pandas as pd
writer = pd.ExcelWriter('test.xlsx')
data1 = pd.read_csv("2019-04-01.csv", encoding="gbk")
data2 = pd.read_csv("2019-04-02.csv", encoding="gbk")
data1.to_excel(writer,sheet_name='2019-04-01')
data2.to_excel(writer,sheet_name='2019-04-02')
writer.save()

第一步需要导入pandas库。

之后需要用pandas.read_csv为每个csv建立一个dataframe

有了dataframe,就可以把它转成Excel中的一个表。最后保存。

上面的代码就是把2019-04-01.csv和2019-04-02.csv导入到test.xlsx表格中,同时为它俩分别创建2019-04-01,2019-04-02两个sheet工作表。

运行

运行后打开test.xlsx。效果如下。
Python多个CSV文件 合并到多个sheet工作表 完美解决

美化

尽管已经实现了目标,但是第一列不正常。多了一列行号
Python多个CSV文件 合并到多个sheet工作表 完美解决

所以还需要修改一下,让行号这列去掉。方法非常简单。加个参数index_col=0

data1 = pd.read_csv("2019-04-01.csv", encoding="gbk",index_col=0)
data2 = pd.read_csv("2019-04-02.csv", encoding="gbk",index_col=0)

删掉刚才的test.xlsx。再次运行一下。效果如下:
Python多个CSV文件 合并到多个sheet工作表 完美解决

完美解决!

补充

在更多情况下,我们并不想一个一个地输入文件名。而是把所有要处理的csv文件放在一个文件夹中。让python自动读取这些csv文件,并创建一个Excel文件,以及自动将文件名作为sheet导入到Excel文件中。

代码:

import pandas as pd
import os

newdir = 'G:\编程代码\python代码\表格\\new'
list = os.listdir(newdir)  # 列出文件夹下所有的目录与文件

writer = pd.ExcelWriter('步数.xlsx')

for i in range(0,len(list)):
    data = pd.read_csv(list[i],encoding="gbk", index_col=0)
    data.to_excel(writer, sheet_name=list[i])


writer.save()

相关文章:

  • 微擎 安装界面 无法安装
  • 将 多个空格 替换为一个逗号
  • PHP gb2312编码 没有某个汉字
  • Python pandas的dataframe怎么去除行号第一列
  • 谷歌浏览器 ctrl+w 有问题
  • idea 续行 代码分两行
  • pandas read_csv参数index_col = None,0,False的区别
  • 阿里云服务器 phpstudy 搭建多个网站并配置多域名
  • 微信小程序开发 找不到 AppID 和 AppSecret
  • 该模块暂无可用的公众号或小程序请先分配权限
  • Python 获取 指定文件夹目录内 所有文件名
  • Python 自动补0
  • .htaccess 强制https 单独排除某个目录
  • mac idea2020.3 配置tomcat和创建javaWeb项目
  • Cannot resolve method ‘getParameter(java.lang.String)‘
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【知识碎片】第三方登录弹窗效果
  • Angularjs之国际化
  • CODING 缺陷管理功能正式开始公测
  • JavaScript-Array类型
  • JAVA并发编程--1.基础概念
  • js正则,这点儿就够用了
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 开发基于以太坊智能合约的DApp
  • 老板让我十分钟上手nx-admin
  • 微信开源mars源码分析1—上层samples分析
  • 小程序 setData 学问多
  • 智能合约开发环境搭建及Hello World合约
  • 交换综合实验一
  • (3)llvm ir转换过程
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (二)fiber的基本认识
  • (二)linux使用docker容器运行mysql
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)ABI是什么
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转载)深入super,看Python如何解决钻石继承难题
  • .“空心村”成因分析及解决对策122344
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 提取注释生成API文档 帮助文档
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net语言中的StringBuilder:入门到精通
  • /var/log/cvslog 太大
  • @property括号内属性讲解
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [docker] Docker的数据卷、数据卷容器,容器互联
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率
  • [HAOI2016]食物链