Python csvからsqlite3のDBを作成する。またそのDBを読み込んでデータ抽出したり、csvファイルへ出力する

 csvファイルから、sqlite3のデータベース(DB)ファイルを作成するPythonの雛形コード。また、そのDBを読み出して、指定した条件のデータを抽出したり、それをcsvファイルへ出力する雛形コードも載せました。

ちなみに、csvからsqlite3のDBを作成するには、次のようにコマンドラインで行えます。

sqlite3 -separator , iris.db ".import iris-dataset.csv table_name"

しかし、上記の方法で作成したDBの場合、テーブルの型は全てTEXT(文字列)になります。これでは数値データとして処理したい場合に不都合な場合があり得えます。例えば、ある数値データ列に対して、数値5以上7以下の範囲の値を有するデータ行を抽出したい場合等です。そのため、Pythonの標準ライブラリsqlite3で処理すると楽です。

 下図はその一例で、列名speciesの要素が'setosa'であって、列名sepal_widthの要素が3.0以下である行データを抽出する場合の処理です。

2つの雛形コードは、GitHubに登録しています。それらは、Jupyter Labでインタラクティブに処理出来て便利です。

csvファイルからsqlite3のDBファイルを作成する

 DBを作成する際は、テーブルは型も同時に手動で指定して定義します。そして、大量のデータ挿入はPythonのループで処理します。ちなみに、一度作成したDBへのデータの追加は挿入と同じです。

https://github.com/hk29-ai/template_for_csv2sqlite3/blob/main/template_for_csv2sqlite3db.ipynb

■sqlite3のDBのロードする

 上記で作成したDBをまずは読み込みます。次に、条件を指定してデータを抽出したり、それをcsvファイルへ出力するコードです。

https://github.com/hk29-ai/template_for_csv2sqlite3/blob/main/template_for_load_sqlite3db_and_extract_data.ipynb

以上

<広告>