ファイルに追記していくプログラム
既存のファイルにデータを連結したいこともあります。例えば、毎⽉や毎週など定期的にデータが送られてきて、それを連結したい場合などです。Excelで作業する場合は、現在のファイルを開き、そこに新しいデータをコピー&ペーストして上書き保存します。Pythonのプログラムでも考え⽅は同じで、現在のファイルを読み込み、そこにデータを連結して同じファイル名で保存(上書き保存)します。
2つのExcelファイルをプログラムと同じフォルダ内に置き、プログラムを実⾏すると「⼤阪⽀店.xslx」の内容が「統合表.xslx」に連結されます。
1つ注意が必要なのは、プログラムを実⾏するたびに「⼤阪⽀店.xlsx」が連結されるので、何回も実⾏すると重複したデータができてしまうという点です。実⾏回数に注意してください。
サンプルファイルは下のeditボタンからダウンロード
import pandas as pd
df= pd.read_excel("統合表.xlsx")
read_data=pd.read_excel("大阪支店.xlsx",engine="openpyxl")
df=pd.concat([df,read_data])
with pd.ExcelWriter("統合表.xlsx") as writer:
df.to_excel(writer,index=False)
read_excel関数で対象のファイルを読み込み、to_excelメソッドで保存します。
concat関数とは
使⽤しているのはconcat関数です。concat関数は、複数のpandasオブジェクトを結合するために使用される関数です。この関数は、行または列を追加してpandasオブジェクトを結合するために使用されます。この関数は、データフレーム、シリーズ、パネルなどのpandasオブジェクトの結合に使用できます。DataFrameオブジェクトのリストを引数に指定すると、それらを連結したDataFrameオブジェクトを返します。
近頃は資料の表がPDFで届くことも増えています。PDFは容易に書き換えされないといったリットもありますが、何かの資料に使う場合はExcelなどの形式に変換しなければいけません。今回はPythonを使ってPDFからExcelに変換する⽅法を紹介しましょう。
このパッケージを利⽤するには、PythonのほかにJavaというプログラミング⾔語の実⾏環境も必要です。
https://www.java.com/ja/download/
PDFから表を抜き出すためにtabulaパッケージを使っています。
このパッケージは標準ではインスト ー ルされないので、AnacondaNavigatorを使うか、以下のコマンドでインストールしてください。tabulaパッケージはターミナルまたはコマンドプロンプトから次のコマンドを使用してインストールできます。
$ pip install tabula
convert_into関数
tabulaのconvert_into関数を使うと、PDFファイル内の表をCSVやTSV、JSON などの形式で書き出せます。 CSVで書き出したい場合は「output_format=”csv”」と指定します。また、PDFのページを指定したい場合は「pages=”1-2,3″」のように指定します。
convert_into関数を実⾏すると、カレントディレクトリ内にCSVファイルが作成されます。それをread_csv関数で読み込み、to_excelメソッドでExcelファイルを保存します。
DataFrameを操作する便利な関数
PythonでExcelを操る他テクニック
openpyxlの使い方 Excelの差し込みがワンクリックで
tabulaのconvert_into関数でPDFファイルをExcelに変換
【Python】項目がバラバラなExcelファイルを一つにまとめる