目次
-はじめに
-XAMPPの導入
-データベース作成
-Pythonからpandasで取得する
-参考記事
はじめに
初めまして!
初投稿になります。自分が作ったものを備忘録的に投稿していこうと思います。
よろしくお願いします。
さて、自分は趣味であるcsvデータをpythonを用いて分析をしているのですが、データ量が多いため、読み込むのに時間が掛かるということが悩みになっています。
そのため、データをすべて読み込むのではなく、SQLを用いて必要な情報だけ取得できるようにしたいと思い立ちました。
今回は、ローカル環境下で、CSVデータをXAMPPに上げ、pythonでSQLを叩き、pandasのデータフレームとして取得できる環境を構築しました。
今回使用するcsvは以下のものを使用します。
A,B,C
1,a,あ
2,b,い
3,c,う
4,d,え
何番煎じか分りませんが、お付き合い頂けますと幸いです。
環境
OS: windows 11
xampp: XAMPP for Windows 8.0.28
jupyterlab: 3.6.3
python: 3.11.3
XAMPPの導入
xamppとは
XAMPP(ザンプ、シャンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージとしてまとめたもので~(中略)~ Apache(Webサーバ)、MariaDB(SQLデータベースサーバ;旧バージョンはMySQL)とWebプログラミング言語であるPHPや同目的で使われるPerlの4つの主要ソフトウェアとphpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれている。現在、Windows、Linux、macOS、Solarisで利用可能である。(Wikipediaより)
とのことで、webサーバーやSQLデータサーバーの環境構築がお手軽に出来る便利なものです。
ダウンロードはxampp公式のこちらから↓
お使いのOSの最新バージョンをダウンロードするので問題ないと思います。
ダウンロードしたインストーラーに従うだけで、起動できます。
起動したら、コントローラーパネルから、ApachとMySQLのstartボタンを押します。
MySQLのAdminを押して、phpMyAdminが出れば成功です。
データベース作成
phpMyAdminの画面が出たらデータベースと書いてあるボタンをクリック
データベースの画面が開けたら「データベースを作成する」の欄に作成したいデータベース名を打ち込んで作成するを押します。今回はtestというデータベース名で行きます。
作成ボタンを押したら、まだテーブルは出来ていないのでcsvのインポートをするために、インポートボタンから「インポートするファイル」からアップロードしたいファイルを選択
今回のcsvは一行目にカラムが含まれているので、
「ファイルの最初の行にテーブルのカラム名が含まれている。」にチェックをしてインポート。
他の設定はデフォルトで大丈夫だと思います。
左側のデータベース名のtestをクリックして以下のようになっていれば成功です!
Pythonからpandasで取得する
今回はmysql-connector-pythonを使用するのでコンソールから
pip install mysql-connector-python
をした後、pythonから以下のプログラムを打ちます。
(ちなみにcondaはpythonの3.11に対応していないようです。)
import mysql.connector
import pandas as pd
def get_data_from_database():
# MySQLに接続するための情報
config = {
'user': 'root', # ユーザー名
'password': '', # パスワード
'host': 'localhost', # ホスト名
'database': 'test' # データベース名
}
# MySQLに接続
cnx = mysql.connector.connect(**config)
# Pandasのデータフレームを作成
query = "SELECT * FROM test"
df = pd.read_sql_query(query, cnx)
# 接続をクローズする
cnx.close()
return df
data_frame = get_data_from_database()
print(data_frame)
configはユーザー名やパスワードは今回は設定していないですが、設定していたらそちらに変更してください。
queryでSQL文を自由に記述できます。
無事データフレームが表示されたら成功です!!
参考記事