pandas データ分析 37 - MySQL をデータ フレームにリンクする

私はpythonが得意で、特にpandasでデータを処理するのが得意で、クエリ関数はSQLを使っていますが、pandasも同じようにデータをクエリできると思います。

したがって、SQL データ フレームを Python 環境にインポートし、クエリとフィルタリングを行うのは楽しいことではありません。


pymysql

主に pymysql ライブラリを使用して、

パッケージのインポート:

import pymysql
import pandas as pd

リンクされたデータフレーム オブジェクト

#账户密码
db = pymysql.connect(
    host='127.0.0.1', port=3306,
    user='root', passwd='****',     # 输入自己的账户和密码
    db ='college', charset='utf8'    # db 输入数据库,有用到的就行
)

ローカル環境では、host と port の 2 つのパラメーターを変更する必要はありません。主な理由は、自分のパスワードとパラメーター db を変更することです。ここで、db はデータベースの名前を意味します。

SQLステートメントの実行を書く

sql = '''select * from student ;''' # SQL 代码
cursor = db.cursor()                 # 执行数据库的操作是由cursor完成的,使用cursor()方法获取操作游标
cursor.execute(sql)                  # 执行sql语句

データを取得する

datas = cursor.fetchall()            # 获取查询的所有记录
cols_info = cursor.description       # 获取行相关信息
cursor.close()                       # 关闭游标
db.close()                           # 关闭连接数据库

データフレームに変換

cols = [col[0] for col in cols_info] # 处理保留列名
df = pd.DataFrame(datas,columns=cols)
df

 私は非常に便利だと感じており、大学で学生フォームを取得しました。

それを関数にカプセル化し、他のテーブルを取り出してみます。

def get_sql_data(sql_sence='''select * from course ''',sql_name='college'):
    #账户密码
    db = pymysql.connect(
        host='127.0.0.1', port=3306,
        user='root', passwd='****',     # 输入自己的账户和密码
        db =sql_name, charset='utf8'    # db 输入数据库,有用到的就行
    )
    sql_course = sql_sence # SQL 代码
    cursor = db.cursor()                 # 执行数据库的操作是由cursor完成的,使用cursor()方法获取操作游标
    cursor.execute(sql_course)                  # 执行sql语句
    datas = cursor.fetchall()            # 获取查询的所有记录
    cols_info = cursor.description       # 获取行相关信息
    cols = [col[0] for col in cols_info] # 处理保留列名
    df = pd.DataFrame(datas,columns=cols)
    cursor.close()                       # 关闭游标
    db.close()                           # 关闭连接数据库
    return df

コーススケジュールのエクスポート: コース 

get_sql_data(sql_sence='''select * from course ''')

スコアシートのエクスポート:

get_sql_data(sql_sence='''select * from score ''')

 

 次に、pandas を使用してフィルター処理とクエリを実行すると非常に便利です。

おすすめ

転載: blog.csdn.net/weixin_46277779/article/details/129470013