目的
複数のCSVファイルを1つのExcelファイル、複数のシートワークシートに結合します。
序文
インターネット上のほとんどの方法は、csvを直接マージすることであり、個別のシートを作成することはありません。
CSVが複数のシートへのマージをサポートしていないという回答もいくつかあります。
インターネット上には便利なマクロコマンドがあります。試してみましたが、インポートできるのは1枚だけです。また、便利なPythonであり、それらのほとんどは役に立たない。
困難にもかかわらず、最終的にパンダライブラリを使用して目標を達成しました。
開始
次のコードが使用されます。データを含む2つの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.read_csvを使用して、各csvのデータフレームを作成する必要があります。
データフレームを使用すると、Excelでテーブルに変換できます。最後に保存します。
上記のコードは、2019-04-01.csvと2019-04-02.csvをtest.xlsxテーブルにインポートし、それらの2つのシートワークシート2019-04-01と2019-04-02を作成するためのものです。
実行
実行後にtest.xlsxを開きます。効果は以下のとおりです。
美化する
目標は達成されましたが、最初の列は異常です。もう1つの行番号。
したがって、行番号の列を削除するように変更する必要があります。方法はとても簡単です。パラメータ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を削除します。もう一度実行してください。効果は次のとおりです。
完璧な解決策!
補足
多くの場合、ファイル名を1つずつ入力したくありません。代わりに、処理するすべてのcsvファイルをフォルダーに入れます。Pythonがこれらのcsvファイルを自動的に読み取り、Excelファイルを作成し、ファイル名をシートとして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()