LoginSignup
0
1
はじめての記事投稿

csvファイルをxamppに上げてpythonで取得できるようにしてみた

Posted at

目次

-はじめに
-XAMPPの導入
-データベース作成
-Pythonからpandasで取得する
-参考記事

はじめに

初めまして!

初投稿になります。自分が作ったものを備忘録的に投稿していこうと思います。

よろしくお願いします。

さて、自分は趣味であるcsvデータをpythonを用いて分析をしているのですが、データ量が多いため、読み込むのに時間が掛かるということが悩みになっています。

そのため、データをすべて読み込むのではなく、SQLを用いて必要な情報だけ取得できるようにしたいと思い立ちました。

今回は、ローカル環境下で、CSVデータをXAMPPに上げ、pythonでSQLを叩き、pandasのデータフレームとして取得できる環境を構築しました。

今回使用するcsvは以下のものを使用します。

test.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ボタンを押します。

xampp_start.png

MySQLのAdminを押して、phpMyAdminが出れば成功です。

admin画面.png

データベース作成

phpMyAdminの画面が出たらデータベースと書いてあるボタンをクリック

phomyadmin.png

データベースの画面が開けたら「データベースを作成する」の欄に作成したいデータベース名を打ち込んで作成するを押します。今回はtestというデータベース名で行きます。

データベース作成.png

作成ボタンを押したら、まだテーブルは出来ていないのでcsvのインポートをするために、インポートボタンから「インポートするファイル」からアップロードしたいファイルを選択

タイトルなし (2).png

今回のcsvは一行目にカラムが含まれているので、

「ファイルの最初の行にテーブルのカラム名が含まれている。」にチェックをしてインポート。

他の設定はデフォルトで大丈夫だと思います。

スクリーンショット 2023-07-17 150535.png
スクリーンショット 2023-07-17 150733.png

左側のデータベース名のtestをクリックして以下のようになっていれば成功です!
スクリーンショット 2023-07-17 150943.png

Pythonからpandasで取得する

今回はmysql-connector-pythonを使用するのでコンソールから

pip install mysql-connector-python

をした後、pythonから以下のプログラムを打ちます。

(ちなみにcondaはpythonの3.11に対応していないようです。)

test.py
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文を自由に記述できます。

無事データフレームが表示されたら成功です!!

参考記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1