教你如何把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()

到此這篇關於Python CSV 合並到多個sheet工作表的文章就介紹到這瞭,更多相關Python CSV 合並sheet工作表內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: