美文网首页玩转大数据大数据数据蛙数据分析每周作业
股票数据分析案例第二篇《python结合mysql使用》

股票数据分析案例第二篇《python结合mysql使用》

作者: 数据蛙datafrog | 来源:发表于2019-09-14 09:53 被阅读0次

此系列文章是《数据蛙三个月就业班》股票数据分析案例的总结,整个案例包括linux、shell、python、hive、pycharm、git、html、css、flask、pyechart、sqoop等的使用,为了让就业班同学能够更好的学习,所以对上面大家有疑问的内容进行了总结。本篇是股票数据分析案例第二篇总结---python 链接mysql数据库

本文阅读路线:

  • python 和mysql 链接的引擎
  • Python 和各种引擎的结
  • pandas 和各种引擎的结合使用(数据分析同学常用)
一:python 和mysql 链接的引擎

我们一般常用的mysql引擎,主要有下面的几个

1.Python-MySQL
Python-MySQL资格最老,又叫 MySQLdb,核心由C语言打造,是 Python 连接 MySQL 最流行的一个驱动,但是只支持python2.x;由于安装的时候有很多前置条件,并且是基于C语言的库,所以在 Windows 平台安装非常不友好,经常会报错,现在基本不推荐使用,取代的是它的衍生版本

2.mysqlclient

由于 MySQL-python 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具。安装方式和 MySQLdb 是一样的,Windows 可以在 此网站找到 对应版本的 whl 包下载安装。

3.PyMySQL

PyMySQL 是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQLdb,这样就可以方便使用MySQLdb了,如下

import pymysql
pymysql.install_as_MySQLdb()#只有这行使用了才能使用下行
import MySQLdb

要要学习通过pymysql使用MySQLdb,看下文的举例

4.SQLALchemy

这个引擎是即支持原生的SQL,又支持ORM技术:Object-Relational Mapping具体的参考如下。这是开发web时常用的技术,我们做数据分析的同学暂时不要考虑什么是ORM技术了哈

二:Python 和各种引擎的结合使用

下面我们主要介绍PyMySQL这种引擎的使用了,这个大家用的也是比较多的

1.1PyMySQL的使用

  # @Time    : 2019/8/27 7:35
# @Author  : datafrog!!
# @FileName: dataFrogTest.py
# @Software: PyCharm
# !/usr/bin/python3

import pymysql

# 打开数据库连接(ip,username,userpassword,databases)
db = pymysql.connect("localhost", "root", "123456", "world")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 插入语句
sql = "select * from world.city limit 1"
try:
    # 执行sql语句
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
except:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

运行代码,能够打印出一行数据库中的数据如下:


pymysql学习参考链接

1.2在pymysql下使用MySQLdb

#!/usr/bin/python3

# import pymysql

import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb

# 打开数据库连接(ip,username,userpassword,databases)
db = MySQLdb.connect("localhost", "root", "123456", "world")

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 插入语句
sql = "select * from world.city limit 1"
try:
    # 执行sql语句
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)


except:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

运行代码,也是能够打印出结果来


三:pandas 和各种引擎的结合使用

pandas 使用mysql引擎,才是数据分析同学打开的正确方式哈。

1.1 pandas和pymysql 结合读取mysql数据

import pandas as pd

# 下面传入的参数依次是(ip,username,userpassword,databases)
conn = pymysql.connect("localhost", "root", "123456", "world")
sql="select * from city limit 5"
df=pd.read_sql_query(sql,conn)
print(df.head())

一起看下结果


1.2 pandas 和pymysql 结合写入mysql数据

import pandas as pd
import pymysql
#参数依次是(ip,username,userpassword,databases)
conn = pymysql.connect("localhost", "root", "123456", "world")
sql="select * from city limit 5"
df=pd.read_sql_query(sql,conn)
#if_exists有下面几个参数{‘fail’, ‘replace’, ‘append’}
df.to_sql('test',conn,if_exists='append')

2.1 pandas和SQLALchemy 结合读取mysql数据

#!/usr/bin/python3

import sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
#依次传入的参数是(username,userpassword,ip,databases)
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/world?charset=utf8')
sql="select * from city limit 5"
df=pd.read_sql_query(sql,engine)
print(df.head())
image.png

2.2 pandas和SQLALchemy 结合写入mysql数据

#!/usr/bin/python3

import sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
#依次传入的参数是(username,userpassword,ip,databases)
engine = create_engine('mysql+pymysql://root:123456@localhost:3306/world?charset=utf8')
sql="select * from city limit 5"
df=pd.read_sql_query(sql,engine)
#if_exists有下面几个参数{‘fail’, ‘replace’, ‘append’}
 df.to_sql('test',engine,if_exists='append')

关于mysql的引擎介绍和使用,我们已经总结完了,建议同学们下面也要学习下面这几个函数的文档read_sql()read_sql_query()read_sql_tableto_sql()

相关文章

网友评论

    本文标题:股票数据分析案例第二篇《python结合mysql使用》

    本文链接:https://www.haomeiwen.com/subject/qmmuectx.html