🐼
sqlからpandasを逆引き(INSERT編)
こんにちは。ヤギユキ(@yagiyuki06)です。
SQLのクエリから、Pandas のメソッドを逆引きする情報を作成しました。
SQLは知っているけど、Pandasはあまり知らないエンジニアのための情報です。
今回は、SQLのINSERT文をターゲットとします。
前回は、SELECT編の記事を書いたので、よろしければこちらもどうぞ。
単一レコード追加
レコード追加は、appendメソッドを使います。
単一のレコードを追加する例です。
SQL
-- カラムCOL1にA1、COL2にB1を追加
INSERT into tbl (COL1, COL2) values ('A1', 'B1');
python
s = pd.Series(['A1', 'B2'], index=['COL1', 'COL2']) # 複数レコードと同様にDataFrameでも可
df.append(s, ignore_index=True)
複数レコード追加
複数レコードを追加する例です。
SQL
-- カラムCOL1,COL2に3つのレコード ('A1', 'B1'), ('A2', 'B2'), ('A3', 'B3') を追加
INSERT into tbl (COL1, COL2) values ('A1', 'B1'), ('A2', 'B2'), ('A3', 'B3');
python
df2 = pd.DataFrame([['A1', 'B1'], ['A2', 'B2'], ['A3', 'B3']],
columns=['COL1', 'COL2'])
df.append(df2, ignore_index=True)
SELECT結果をINSERT
別テーブルから選択したレコードを、追加する例です。
SQL
-- tbl2でA1にマッチするレコードをtblに追加する
INSERT INTO tbl SELECT * FROM tbl2 WHERE COL1 = 'A1'
python
df.append(df2.query('COL1=="A1"'), ignore_index=True)
Discussion