背景知识视频教程
Python中使用Pandas教程 - 国外课栈viadean.comPandas数据分析与探索 - 国外课栈viadean.com如果您无法从外部环境直接访问数据库,则可能需要SSH隧道来查询它。 在这篇文章中,我将向您展示如何通过SSH连接并查询MySQL数据库到Pandas数据框。 可以将相同的代码应用于连接到其他数据库,例如PostgreSQL。
假设您的数据库托管在52.xx.xx.xx上,并且您具有以下用户和私钥:
# ssh variables
host = '52.xx.xx.xx'
localhost = '127.0.0.1'
ssh_username = 'ubuntu'
ssh_private_key = '/path/to/key.pem'
SSH进入环境后,我们需要一个用户名和密码来连接到名为“数据库”的数据库:
# database variables
user='user'
password='verysecurepassword'
database='database'
要将所有这些转换为可以从Python代码调用的一个函数,我们可以使用sshtunnel软件包,您可以使用pip获得该软件包:
pip install sshtunnel
然后导入SSHTunnelForwarder,MySQLdb和pandas:
from sshtunnel import SSHTunnelForwarder
import MySQLdb as db
import pandas as pd
要导入MySQLdb,您需要先安装MySQL-python。您可以用Psycopg代替MySQLdb对PostgreSQL做同样的事情。
备注:目前不推荐使用MySQLdb和Psycopg,出于介绍目的。推荐使用MySQL connector/Python和Psycopg2。
现在,我们将使用SSHTunnelForwarder创建一个隧道,连接到数据库,进行查询并以Pandas数据帧的形式返回结果。查询后关闭连接和SSH隧道。
read_sql_query方便地将您的SQL查询作为字符串以及刚刚建立的与数据库的连接,并从表格数据中创建数据框。
现在,您可以简单地查询数据库:
输出: