Maison >base de données >tutoriel mysql >Quelles sont les manières d'écrire dans la base de données MySQL en Python ?

Quelles sont les manières d'écrire dans la base de données MySQL en Python ?

WBOY
WBOYavant
2023-06-03 12:52:091645parcourir

Scénario 1 : Les données n'ont pas besoin d'être écrites fréquemment sur MySQL

Utilisez la fonction d'assistant d'importation de l'outil Navicat. Ce logiciel peut prendre en charge une variété de formats de fichiers, créer automatiquement des tableaux basés sur les champs de fichiers et insérer facilement des données, et il est également très rapide.

Quelles sont les manières décrire dans la base de données MySQL en Python ?

Quelles sont les manières décrire dans la base de données MySQL en Python ?

Scénario deux : les données sont incrémentielles et doivent être automatisées et fréquemment écrites dans MySQL

Données de test : format csv, environ 12 millions de lignes

import pandas as pd
data = pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
data.shape

Imprimer les résultats

Quelles sont les manières décrire dans la base de données MySQL en Python ?

Première méthode

bibliothèque python + pymysql

Installer la commande pymysql

pip install pymysql

Implémentation du code :

import pymysql

# 数据库连接信息
conn = pymysql.connect(
       host='127.0.0.1',
       user='root',
       passwd='wangyuqing',
       db='test01', 
       port = 3306,
       charset="utf8")

# 分块处理
big_size = 100000
# 分块遍历写入到 mysql    
with pd.read_csv('./tianchi_mobile_recommend_train_user.csv',chunksize=big_size) as reader:

    for df in reader:

        datas = []
        print('处理:',len(df))
#         print(df)
        for i ,j in df.iterrows():
            data = (j['user_id'],j['item_id'],j['behavior_type'],
                    j['item_category'],j['time'])
            datas.append(data)
        _values = ",".join(['%s', ] * 5)
        sql = """insert into users(user_id,item_id,behavior_type
        ,item_category,time) values(%s)""" % _values
        cursor = conn.cursor()
        cursor.executemany(sql,datas)
        conn.commit()
 # 关闭服务      
conn.close()
cursor.close()
print('存入成功!')

Quelles sont les manières décrire dans la base de données MySQL en Python ?

Méthode 2

pandas + sqlalchemy : les pandas doivent introduire sqlalchemy pour prendre en charge SQL Avec le support de sqlalchemy, il peut implémenter tous les éléments courants. requête de types de base de données, mise à jour et autres opérations.

Implémentation du code :

from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://root:wangyuqing@localhost:3306/test01')
data = pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
data.to_sql('user02',engine,chunksize=100000,index=None)
print('存入成功!')

Quelles sont les manières décrire dans la base de données MySQL en Python ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer