Pandas的文档中有许多处理以各种格式存储的数据的最佳实践示例。
但是,我找不到任何使用数据库的好例子,比如MySQL。
谁能给我一些链接,或者给我一些代码片段,告诉我如何使用mysql-python将查询结果有效地转换为熊猫中的数据帧?
发布于 2012-06-21 20:34:30
正如Wes所说,一旦您使用DBI兼容库获得了数据库连接,io/sql的read_sql就可以做到这一点。我们可以看两个简短的示例,使用MySQLdb
和cx_Oracle
库连接到Oracle和MySQL并查询它们的数据字典。以下是cx_Oracle
的示例
import pandas as pd
import cx_Oracle
ora_conn = cx_Oracle.connect('your_connection_string')
df_ora = pd.read_sql('select * from user_objects', con=ora_conn)
print 'loaded dataframe from Oracle. # Records: ', len(df_ora)
ora_conn.close()
下面是MySQLdb
的等效示例
import MySQLdb
mysql_cn= MySQLdb.connect(host='myhost',
port=3306,user='myusername', passwd='mypassword',
db='information_schema')
df_mysql = pd.read_sql('select * from VIEWS;', con=mysql_cn)
print 'loaded dataframe from MySQL. records:', len(df_mysql)
mysql_cn.close()
发布于 2014-07-30 15:04:38
对于这个问题的最近读者:熊猫在它们的docs for version 14.0中有以下警告
警告:某些现有函数或函数别名已弃用,将在未来版本中删除。这包括: tquery,uquery,read_frame,frame_query,write_frame。
和:
警告:已弃用使用DBAPI连接对象时对‘mysql’风格的支持。SQLAlchemy engines (GH6900)将进一步支持MySQL。
这使得这里的许多答案都过时了。您应该使用sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('dialect://user:pass@host:port/schema', echo=False)
f = pd.read_sql_query('SELECT * FROM mytable', engine, index_col = 'ID')
发布于 2013-02-27 02:58:37
对于记录,下面是一个使用sqlite数据库的示例:
import pandas as pd
import sqlite3
with sqlite3.connect("whatever.sqlite") as con:
sql = "SELECT * FROM table_name"
df = pd.read_sql_query(sql, con)
print df.shape
https://stackoverflow.com/questions/10065051
复制相似问题