python连接mysql数据库并将dataframe的数据插入表中

代码中连接的sql表为"20230411_hangzhuanlie",表结构如下:

代码如下(按需修改用户名、库名等即可):


import pymysql
import pandas as pd
from sqlalchemy import create_engine

host = '127.0.0.1:3306/'
user_name = 'root'
password = '123456'
database_name = 'test'
table_name = '20230411_hangzhuanlie'

db_data = 'mysql+pymysql://'+user_name+':'+password+'@'+host+database_name \
            +'?charset=utf8mb4'
            
# 创建链接
engine = create_engine(db_data)

df = pd.DataFrame({'id':[1,3],
                   'dt':[2,3],
                   'c1':[1,'sad'],
                   'c2':[12,412],
                   'c3':[123,412]})
df.to_sql(table_name, engine, if_exists='append', index=False)

# 关闭连接
engine.dispose()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 pandas 库的 to_sql() 方法将 DataFrame 的某一列插入MySQL 。具体操作如下: 1. 首先,需要安装 MySQL Connector Python 库,可以使用以下命令进行安装: ``` pip install mysql-connector-python ``` 2. 然后,连接MySQL 数据库,可以使用以下代码: ``` import mysql.connector # 建立连接 cnx = mysql.connector.connect(user='username', password='password', host='hostname', database='database_name') ``` 3. 接着,将 DataFrame 的某一列转换为 MySQL 的一列,可以使用以下代码: ``` import pandas as pd # 读取 DataFrame df = pd.read_csv('data.csv') # 将 DataFrame 的某一列转换为 MySQL 的一列 column_name = 'column_name' column_data_type = 'VARCHAR(255)' # 列的数据类型 df[column_name] = df[column_name].astype(str) # 将列的数据类型转换为字符串类型 df[column_name] = df[column_name].apply(lambda x: x.replace("'", "''")) # 将列的单引号替换为两个单引号,避免 SQL 注入攻击 # 将 DataFrame 的某一列插入MySQL table_name = 'table_name' df[[column_name]].to_sql(name=table_name, con=cnx, if_exists='append', index=False, dtype={column_name: column_data_type}) ``` 其,name 参数指定要插入名,con 参数指定 MySQL 数据库连接对象,if_exists 参数指定如果已经存在时的操作,index 参数指定是否将 DataFrame 的索引插入,dtype 参数指定列的数据类型。 注意,如果要插入不存在,需要先创建,并指定列的数据类型。例如: ``` cursor = cnx.cursor() create_table_query = ''' CREATE TABLE table_name ( column_name VARCHAR(255) ) ''' cursor.execute(create_table_query) cursor.close() ``` 这样,就可以将 DataFrame 的某一列插入MySQL 了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值