CSV をテーブルに読み込む
これまでテーブルへのデータ挿入はとても順調です!ここでは、CSV ファイルの中身をテーブルに読み込む方法を学びます。
一つの方法は、CSV ファイルを1行ずつ読み込み、各行から辞書を作って、前の演習で行ったように insert() を使うやり方です。
しかし、pandas を使えばもっと速くできます。read_csv() 関数を使って CSV ファイルを DataFrame に読み込めます(この関数はおなじみだと思いますが、復習したい場合はコンソールで help(pd.read_csv) を実行して確認できます)。その後、DataFrame に対して .to_sql()(docs)メソッドを呼び出すと、データベース内の SQL テーブルへ書き込めます。DataFrame の列は SQL テーブルの列と一致している必要があります。
.to_sql() には多くの引数がありますが、この演習では次のものを使います。
nameは SQL テーブル名(文字列)です。conはデータのアップロードに使うデータベースへの接続です。if_existsは、同名テーブルがすでにデータベースに存在する場合の動作を指定します。取りうる値は"fail"、"replace"、"append"です。index(TrueまたはFalse)は、DataFrame のインデックスを列として書き出すかどうかを指定します。
この演習では、census.csv ファイルに含まれるデータを、既存のテーブル "census" にアップロードします。データベースへの connection はすでに作成済みです。
この演習はコースの一部です
Pythonで学ぶデータベース入門
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# import pandas
import pandas as pd
# read census.csv into a DataFrame : census_df
census_df = pd.___(___, ___=___)
# rename the columns of the census DataFrame
census_df.columns = [___, ___, ___, 'pop2000', 'pop2008']