>  기사  >  데이터 베이스  >  Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-06-03 12:52:091628검색

시나리오 1: mysql에 데이터를 자주 쓸 필요는 없습니다

navicat 도구의 가져오기 마법사 기능을 사용하세요. 이 소프트웨어는 다양한 파일 형식을 지원하고, 파일 필드를 기반으로 자동으로 테이블을 생성하고, 쉽게 데이터를 삽입할 수 있으며 속도도 매우 빠릅니다.

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

시나리오 2: 데이터가 증분적이므로 자동화하고 mysql에 자주 기록해야 합니다.

테스트 데이터: csv 형식, 약 1,200만 행

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

결과 인쇄

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

방법 1

python + pymysql 라이브러리

pymysql 명령 설치

pip install pymysql

코드 구현:

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('存入成功!')

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

방법 2

pandas + sqlalchemy: pandas는 sql을 지원하기 위해 sqlalchemy를 도입해야 합니다. 데이터베이스 유형 쿼리, 업데이트 및 기타 작업.

코드 구현:

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('存入成功!')

Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?

위 내용은 Python에서 MySQL 데이터베이스에 쓰는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제