pandas连接数据库,从数据库读取数据,将数据保存到数据库

pandas连接数据库

import pymysql
from sqlalchemy import create_engine

sql = 'select * from data'
conn = create_engine('mysql+pymysql://root:[email protected]:3306/test')
pdata = pd.read_sql(sql,conn)
print(pdata)

下面解释一下上面的代码:

  1. 导入两个包 pymysql 和sqlalchemy
  2. create_engine(url)此函数作用是与数据库建立连接,下面主要说一下里面url这个参数:
在这里截取代码中官方给的注释:
  The string form of the URL is
    ``dialect[+driver]://user:password@host/dbname[?key=value..]``, where
    ``dialect`` is a database name such as ``mysql``, ``oracle``,
    ``postgresql``, etc., and ``driver`` the name of a DBAPI, such as
    ``psycopg2``, ``pyodbc``, ``cx_oracle``, etc.  Alternatively,

具体意思是 这个url是个字符串型,具体格式是dialect[+driver]: //user:password@host/dbname[?key=value…]
dialect :指定连接数据库类型 我填的是mysql
driver:驱动,也就是数据库连接驱动,python中数据库的连接驱动挺多的,我使用的是pymysql
user:数据库的用户名
password:数据库的密码
host:主机地址 本地通常是localhost 或者127.0.0.1
dname:数据库库名

3.pd.read_sql(sql,conn) 这个就是从数据库读取数据返回值为DataFrame类型的 第一个参数是 sql语句 第二个就是conn连接器了。

数据保存到数据库中

import pandas as pd
import numpy as np
import pymysql
from sqlalchemy import create_engine

conn = create_engine('mysql+pymysql://root:[email protected]:3306/test')
pdata = pd.read_csv('tips.csv')
print(pdata.head(10))
try:
    pdata.to_sql('data1',conn,if_exists='replace',index=False)
except:
    print('error')

具体解释:

  1. pdata = pd.read_csv(‘文件名称’) 此方法是pandas 读取csv文件函数 返回值类型是DataFrame
  2. pdata.to_sql(‘表名’,连接器,if_exists=’ ') if_exists 这个属性有三种值,为fail时,如果次表名重复,则报错;为replace时,删除已存在的这个表,创建这个表并添加数据 为append 则在该表的最后将数据添加到最后。

控制台输出的数据:

在这里插入图片描述
插入数据库后显示的数据:
在这里插入图片描述

我使用的时seaborn官方提供的数据,里面有很多种数据,我一定打包好了,提供大家下载:
seaborn数据资源下载

发布了48 篇原创文章 · 获赞 34 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/lzx159951/article/details/104331384