Pythonの強力なデータ処理機能の大部分はPandasにあります。Pandasは、ローカルのオフラインファイルの読み取りだけでなく、データベースデータをオンラインで読み取り、処理後にデータベースに書き戻すこともできます。Pandasは、主にsqlalchemyのデータベースとのリンクを確立し、Mysql、postgresql、Oracle、MS SQLServer、SQLiteなどの主流データベースをサポートします。
SQLAlchemy
SQLAlchemyは、Pythonプログラミング言語のオープンソースソフトウェアです。MITライセンスの下で発行されたSQLツールキットおよびオブジェクトリレーショナルマッピング(ORM)ツールを提供します。pipコマンドを使用してSQLAlchemyモジュールをインストールできます。
pip install sqlalchemy
SQLAlchemyモジュールは、データベース接続を初期化するためのcreate_engine()関数を提供します。SQLAlchemyは、文字列を使用して接続情報を表します。
'データベースタイプ+データベースドライバ名://ユーザー名:パスワード@マシンアドレス:ポート番号/データベース名'
パンダはMySQLデータベースの読み取りと書き込みを行います
MySQLデータベースの読み取りと書き込みにPandasを実装するには、次の3つのライブラリが必要です。
- パンダ
- pymysql
- sqlalchemy
データベース接続を作成します。
connect = create_engine( 'mysql + pymysql:// username:password @ host:port / dbname')
パンダのDataFrameとしてMySQLデータベースのテーブルを読み取ります。
sql = 'select * from test'
data = pd.read_sql(sql,connect)
DataFrameをパンダでMySQLデータベースに保存します。
data.to_sql('tablename', connect, index=False, if_exists='append')
その中で、if_existsには「fail」という3つのパラメータがあります。テーブルが存在する場合、デポジットは失敗します。
'replace':テーブルが存在する場合、replace
「テーブルが存在する場合」、追加の書き込み
パンダはOracleデータベースの読み取りと書き込みを行います
MySQLデータベースの読み取りと書き込みにPandasを実装するには、次の3つのライブラリが必要です。
- パンダ
- cx_Oracle
- sqlalchemy
データベース接続を作成します。
connect = create_engine( 'oracle:// username:password @ host:port / sid')
pandasのDataFrameとしてOracleデータベースのテーブルを読み取ります。
sql = 'select * from test'
data = pd.read_sql(sql,connect)
DataFrameをパンダでOracleデータベースに保存します。
data.to_sql('tablename', connect, index=False, if_exists='append')