さて、本日は CSV ファイルを SQLite にインポートしてみようと思います。前回のエントリーで「交通事故統計情報のオープンデータ」のコード表を CSV に変換してみました。本エントリーではその CSV を SQLite にインポートしてみようと思います。
PDF を CSV に変換する方法について興味のある方はぜひ前回のエントリーを読んでみてください。
また、以下のエントリーで SQLite に関して書いていますので、こちらも興味がありましたらぜひ読んでみてください。
対象データ
前回のエントリーで出力した CSV です。 これらをファイルごとにインポートしていこうと思います。
やり方
- Pandas で データフレームとして CSV を読み込む
- 「1」のデータフレームをSQLiteにインポート
実行環境
Windows10 64bit
Python3.6.6
サンプルコード
CSV ファイルを SQLite にインポートするサンプルです。すごく短いコードで済みましたね。
# -*- coding: utf-8 -*- import sqlite3 from os.path import join, split from glob import glob import pandas as pd csv_path = r"D:\blog\data\pdf2csv\csv" db_path = r"D:\blog\data\sqlite\test.db" def insert_csv(): # CSV ファイルのディレクトリ取得 csv_files = glob(join(csv_path, "*.csv")) for csv in csv_files: table_name = split(csv)[1] # テーブル名作成 table_name = table_name[0:-4] # テーブル名から拡張子を削除 df = pd.read_csv(csv, dtype=object) # CSV 読込 with sqlite3.connect(db_path) as conn: df.to_sql(table_name, con=conn) # SQLiteにCSVをインポート if __name__ == '__main__': insert_csv()
結果を確認するとこのように CSV がSQLiteにインポートされたことがわかります。
さいごに
CSV ファイルの SQLite へのインポートは思ったよりも簡単にできることがわかりました(Pandas は本当に便利なライブラリですね)。これでようやく「交通事故統計情報のオープンデータ」の可視化にとりかかれそうです。ちょっとまだすべてのデータを確認したわけではないので何とも言えないのですが、結構大変そうですね。ただ、今年の年末年始はコロナでたっぷり時間がありそうですし楽しみながら取り掛かってみようと思います。次回のエントリーもぜひ読んでみてください。