Pythonでpyexcelを用いてcsv形式のデータに行を追加する

Pythonでpyexcelを用いてcsv形式のデータに行の追加を行ってみます。

今回はpyexcelを用います。このライブラリはPythonの標準ライブラリ・モジュールではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■csv形式のデータを用意する

今回はpyexcelを用いてcsv形式のデータの読み取りを行ってみますが、その前にcsv形式のデータを用意します。

今回はGoogleスプレッドシートで作成した上記のデータを用意しました。

このデータをGoogleスプレッドシートの編集画面の「ファイル」で「ダウンロード」から「カンマ区切り形式(.csv)」をクリックします。

クリックすると、Webブラウザで指定されている保存場所にcsv形式のファイルがダウンロードされます。

ダウンロード後、今回はわかりやすいように「C:\Users\user_\test(フォルダパス)」に移動し、「test.csv」というファイル名に変更しておきます。

■pyexcelを用いてcsv形式のデータに行の追加

では、csv形式のデータの用意ができましたので、pyexcelを用いてpyexcelを用いてcsv形式のデータに行の追加を行うスクリプトを書いていきます。

■コード

import pyexcel as p

sheet = p.get_sheet(file_name=r"C:\Users\user_\test\test.csv")

add_data = [
    [6,"吉村","沖縄"]
]

sheet2 = p.Sheet(add_data)

sheet.row += sheet2

print(sheet)

importでpyexcelモジュールを呼び出します。pyexcelモジュールを”p”とします。

その後、sheetという変数を定義し、その中でp.get_sheet()を用います。括弧内には引数,パラメータ(file_name=)として、今回用意したcsv形式のデータが置かれている場所とファイル名を渡します。これでcsv形式のデータを読み取ることができます。読み取ったデータはsheet変数に格納されます。

格納後、add_data変数を定義し、その中に読み取ったデータに追加する行を角括弧”[ ]”などを用いて格納します。今回はデータの6番目の行を追加してみます。

追加する行を格納した後は、sheet2変数を定義し、p.Sheet()を用います。括弧内には引数,パラメータとして、add_data変数を渡します。これで2次元配列のコンテナにadd_data変数が入ります。

その後、読み取ったデータが格納されているsheetのrow”行”に対して、累算代入演算子”+=(プラスイコール)”を用いて、sheetのrow”行”にsheet2変数を代入します。これでデータに行を追加することができます。

最後に行を追加した状態のデータをprint()で出力します。

■実行・検証

このスクリプトを「csv_add.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、pyexcelを用いて、作成した6番目の行を追加し、追加した後のデータをprint()で出力させることができました。

コメント

タイトルとURLをコピーしました