はじめに
pandasとSQLの比較表を個人的にほしいなと思い、記事化します。
これはデータ準備編ですので、実際のSELECT文は次以降の記事で書きます
環境
1 2 3 | import pandas as pd pd.__version__ # '1.4.1' |
1 2 | $ /usr/bin/psql -V psql (PostgreSQL) 12.14 (Ubuntu 12.14-0ubuntu0.20.04.1) |
データ準備
とりあえずiris_datasetを用います
データ取得
1 2 3 4 5 6 7 8 9 10 11 12 | from sklearn import datasets import pandas as pd # 読み込み ds_iris = datasets.load_iris() # DataFrame変換 df_iris = pd.DataFrame(ds_iris.data, columns=ds_iris.feature_names) df_iris['target'] = ds_iris.target # 保存 df_iris.to_csv('iris_dataset.csv', index=None) |
データ読み込み
Python
PandasでCSVを読み込む方法は以下です
1 2 3 | import pandas as pd df_iris = pd.read_csv('iris_dataset.csv') |
SQL
SQLで使うには、最初にデータベース上にテーブル(入れるためのハコ)を作成し、データをロード(読み込み)する必要があります。
- ロードに使うSQL(load_iris.sql)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | \timing -- create table文で、テーブルを作成 create table if not exists IRIS ( -- テーブルの中身を定義 sepal_length float ,sepal_width float ,petal_length float ,petal_width float ,target int ) ; -- copy文でCSVをDBに読み込み \copy IRIS from './iris_dataset.csv' csv header null ''; -- ローカルの相対パスで指定するときは\copyを使うらしい -- csv headerでヘッダありCSV(カラム区切り)ファイルと指定できる -- null ''で空文字をNullとして認識できる |
- Linux上で打つコマンド
1 2 3 4 5 6 7 8 9 10 | # PostgreSQLインストール(省略) # データベース'DB01'作成(出力結果は省略) $ createdb DB01 # 接続先DBをDB01に指定し、ファイルload_iris.sqlの内容を実行 $ psql -d DB01 -f load_iris.sql Timing is on. CREATE TABLE Time: 1.058 ms COPY 150 Time: 2.272 ms |
以上で準備が整いましたので、次回以降、SELECTなどをまとめていきたいと思います。