追記での書き込み
次のコードを実行したときの出力として、正しいものを1つ選べ。
import pandas as pd
import sqlite3
con = sqlite3.connect(":memory:")
d = pd.DataFrame({"x": [1, 2]})
d.to_sql("t", con, index=False)
d.to_sql("t", con, index=False, if_exists="append")
print(pd.read_sql("select count(*) as n from t", con)["n"][0])
- A
2 - B
0 - C
ValueErrorが発生する。 - D
4
正解と解説を見る
正解:D
to_sql の if_exists は、fail(既定。表があるとエラー)、replace(置き換え)、append(追記)。同じデータを二重に追記しないよう注意する。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import pandas as pd` | — |
| 2 | `import sqlite3` | — |
| 3 | `con = sqlite3.connect(":memory:")` | — |
| 4 | `d = pd.DataFrame({"x": [1, 2]})` | d = DataFrame(2行×1列) |
| 5 | `d.to_sql("t", con, index=False)` | d = DataFrame(2行×1列) |
| 6 | `d.to_sql("t", con, index=False, if_exists="ap…` | d = DataFrame(2行×1列) |
| 7 | `print(pd.read_sql("select count(*) as n from …` | — |
| 結果 | 実際の出力 | 4 |

- A
誤り。追記されている。
- B
誤り。行が書き込まれている。
- C
誤り。
appendを指定している。 - D
正しい。
if_exists="append"で、既存の表に追記される。2 行 + 2 行。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。