create_engine语法用法注意[‘mysql+pymysql://root:123456@localhost:3306/python_db‘]书写格式不要随意加空格在中间

本文介绍了如何使用 Python 的 SQLAlchemy 库通过 `create_engine` 函数连接 MySQL 数据库。示例展示了正确的 URL 格式,并执行了一个 SQL 查询从 'customer2018' 表中获取所有数据。查询结果被转换为 pandas DataFrame 并进行了展示。
该文章已生成可运行项目,

python sqlalchemy中create_engine语法用法

 示例:注意['mysql+pymysql://root:123456@localhost:3306/python_db']书写格式不要随意加空格在中间

engine = create_engine('mysql+pymysql://root:123456@localhost:3306/python_db')

参数解释:

dialect -- 数据库类型
driver -- 数据库驱动选择
username -- 数据库用户名
password -- 用户密码
host 服务器地址
port 端口
database 数据库
import pandas as pd
from sqlalchemy import create_engine
import pymysql
# 导入必要三模块
# 查询语句,选出customer2018表中的所有数据
sql = 'select * from customer2018;'
df = pd.read_sql_query(sql, engine)
# read_sql_query的两个参数: sql语句, 数据库连接
df = pd.read_sql_query(sql, engine)
# 输出customer2018表的查询结果
print(df)
runfile('D:/pyexcel/temppandas.py', wdir='D:/testl')
   id       creation_time customer  ... quantity amout_of_money remarks
0  15 2021-04-14 17:46:25       aa  ...      NaN            NaN    None
1  16 2021-04-14 18:10:38       版本  ...      7.0            8.0    aaaa
2  17                 NaT     None  ...      NaN            NaN    None
[3 rows x 13 columns]
本文章已经生成可运行项目
这是matplotlib版本的:import pandas as pd import matplotlib. pyplot as plt import seaborn as sns from sqlalchemy import create_engine import numpy as np from sklearn. linear_model import LinearRegression from sklearn. metrics import r2_score, mean_squared_error from matplotlib. font_manager import FontProperties, findfont, fontManager import warnings warnings. filterwarnings("ignore", category=UserWarning, module="matplotlib") def detect_chinese_fonts(): chinese_fonts = [] test_chars =“中文测试" ] common_fonts = [ "SimHei', 'WenQuanYi Micro Hei', "Heiti TC', 'Microsoft YaHei', 'SimSun', 'KaiTi', 'Source Han Sans SC', 'Noto Sans CJK SC' for font in common_fonts: try: prop = FontProperties(family=font) chinese_fonts.append(font) if prop.get_name() and findfont(prop): except: continue if not chinese_fonts: default_font = findfont(FontProperties()) chinese_fonts.append(default_font) print(f"警告:未找到中文字体,将使用默认字体: (default_font)") print("提示:请安装中文字体(如SimHei、Microsoft YaHei等)以正确显示中文")db_engine create_engine("mysql+pymysql://root:123456@localhost: 3306/wd") sql_query = " SELECT年份,少儿抚养比,老年抚养比,总抚养比 FROM population_data WHERE年份BETWEEN 2004 AND 2024 ORDER BY 年份; data_frame = pd.read_sql(sql_query, db_engine) correlation_matrix = data_frame[['少儿抚养比','老年抚养比','总抚养比']].corr() x = data_frame['少儿抚养比']-values.reshape(-1, 1) # 自变量:少儿抚养比 y = data_frame['总抚养比'].values # 因变量:总抚养比 model.fit(X, y) model LinearRegression() y_pred = model.predict(×) slope = model.coef_[0] intercept model.intercept_r2 = r2_score(y, y_pred)# 决定系数# 均方误差 mse = mean_squared_error(y, y_pred) rmse = np.sqrt(mse) # 均方根误差 residuals = y - y_pred fig, (ax1, ax2) plt.subplots(1, 2, figsize-(18, 7)) sns.heatmap(correlation matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths-0.5, annot kws=('size': 12), ax=ax1)db_engine = create_engine("mysql+pymysql://root:123456@localhost:3306/wd") sql_query SELECT年份,少儿抚养比,老年抚养比,总抚养比 FROM population_data WHERE 年份 BETWEEN 2004 AND 2024 ORDER BY 年份; data_frame = pd.read_sql(sql_query, db_engine) correlation_matrix = data_frame[['少儿抚养比',‘老年抚养比','总抚养比']].corr() x = data_frame['少儿抚养比'].values.reshape(-1,1) # 自变量:少儿抚养比y = data_frame['总抚养比"].values # 因变量:总抚养比 model = LinearRegression() model.fit(x, y) y_pred = model.predict(×) slope = model.coef_[0] intercept = model.intercept_ r2 = r2_score(y, y_pred) # 决定系数mse = mean_squared_error(y,y_pred) # 均方误差rmse = np.sqrt(mse) # 均方根误差 residuals = y - y_pred fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(18, 7)) sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5, annot_kws={'size': 12}, ax=ax1)ax1.set_title('抚养比相关性热力图',fontsize=14) ax1.set_xticklabels(ax1.get_xticklabels(), rotation=45, ha='right') ax1.set_yticklabels(ax1.get_yticklabels(), rotation=0) ax2.scatter(×, y, color='blue',label='实际数据') ax2.plot(X, y_pred, color='red', linewidth=2, label=f'回归直线 (y = {slope:.2f)x + {intercept:.2f})') metrics_text = f'R2 = (r2:.4f}\nMSE= (mse:.4f}\nRMSE = (rmse:.4f)" ax2.text(0.05, 0.95, metrics_text, transform=ax2.transAxes, verticalalignment='top', bbox=dict(boxstyle='round', facecolor='white', alpha=0.8)) ax2.set_xlabel(‘少儿抚养比 (%)',fontsize=12) ax2.set_ylabel('总抚养比 (%)',fontsize=12) ax2.set_title('少儿抚养比对总抚养比的线性回归分析',fontsize=14) ax2.legend() ax2.grid(True) plt.figtext(0.5,-0.05,‘学号:22631642510 姓名:吴栋', ha='center', va='center', fontsize=12) plt.tight_layout() plt.show() plt.figure(figsize=(10, 6)) plt.scatter(X, residuals, color='green') plt.axhline(y=0, color='red', linestyle='--') plt.xlabel('少儿抚养比 (%)',fontsize=12) plt.ylabel('残差', fontsize=12) plt.title('线性回归模型的残差散点图',fontsize=14) plt.grid(True) plt.tight_layout() plt.show()
07-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值