La documentación de Pandas tiene numerosos ejemplos de mejores prácticas para trabajar con datos almacenados en varios formatos.
Sin embargo, no puedo encontrar buenos ejemplos para trabajar con bases de datos como MySQL, por ejemplo.
¿Alguien puede señalarme enlaces o dar algunos fragmentos de código de cómo convertir los resultados de la consulta usando mysql-python en marcos de datos en Pandas de manera eficiente?
Respuestas:
Como dice Wes, read_sql de io / sql lo hará, una vez que haya obtenido una conexión a la base de datos utilizando una biblioteca compatible con DBI. Podemos ver dos ejemplos cortos usando las bibliotecas
MySQLdb
ycx_Oracle
para conectarse a Oracle y MySQL y consultar sus diccionarios de datos. Aquí está el ejemplo decx_Oracle
:Y aquí está el ejemplo equivalente para
MySQLdb
:fuente
Para los lectores recientes de esta pregunta: los pandas tienen la siguiente advertencia en sus documentos para la versión 14.0 :
Y:
Esto hace que muchas de las respuestas aquí estén desactualizadas. Deberías usar
sqlalchemy
:fuente
engine.execute("select * FROM mytable")
con el tiempo que se tarda en ejecutarpd.read_sql_query('SELECT * FROM mytable', engine)
Para el registro, aquí hay un ejemplo usando una base de datos sqlite:
fuente
index_col='timestamp'
enframe_query
.Prefiero crear consultas con SQLAlchemy y luego hacer un DataFrame a partir de él. SQLAlchemy facilita la combinación de condiciones SQL Pythonically si tiene la intención de mezclar y combinar cosas una y otra vez.
fuente
dialect+driver://user:pwd@host:port/db
Ejemplo de MySQL:
fuente
frame_query
ahora está en desuso. Ahora usepd.read_sql(query, db)
en su lugar.La misma sintaxis funciona para Ms SQL Server que usa podbc también.
fuente
Y así es como se conecta a PostgreSQL usando el controlador psycopg2 (instálelo con "apt-get install python-psycopg2" si tiene un sistema operativo derivado de Debian Linux).
fuente
Para Sybase, los siguientes trabajos (con http://python-sybase.sourceforge.net )
fuente
pandas.io.sql.frame_query
es obsoleto. Úselo en supandas.read_sql
lugar.fuente
importar el módulo
conectar
Eso funciona bien y usando pandas.io.sql frame_works (con la advertencia de obsolescencia). La base de datos utilizada es la base de datos de muestra del tutorial de mysql.
fuente
Esto debería funcionar bien.
fuente
Esto me ayudó a conectarme a AWS MYSQL (RDS) desde la función lambda basada en python 3.xy cargar en un DataFrame de pandas
fuente
Para usuarios de Postgres
fuente