首页 > 解决方案 > 如何编写函数将 sql 查询转换为数据框

问题描述

经过很多努力,我以某种方式编写了一个获取表和表中数据的函数,但是在将查询转换为 DataFrame 时暂停了,任何帮助!

我已经尝试过这种方式,欢迎任何建议,我会向他们学习!!

    import pandas as pd,pymysql.cursors

    class Db_Conn(object):

        def __init__(self):
            connection=pymysql.connect(host='****',
                                       user='****',
                                       password='*****',
                                       db='******',
                                       charset='utf8mb4',
                                       cursorclass=pymysql.cursors.DictCursor)
            self.connection=connection

        def fetchtables(self,query):
            with self.connection.cursor() as cursor:
                if cursor.execute(query):
                    for (table_name) in cursor:
                        print(table_name)
                elif cursor.execute(query):
                    a=cursor.fetchall()
                    print(a)

我为此苦苦挣扎......我希望这个函数将 sql 查询转换为 DataFrame

    def dataframes(self,query):
    with self.connection.cursor() as cursor:
        a=pd.read_sql(query,cursor)
        print(a)

我已将对象创建为:

db1=Db_Conn()
# db2=db1.fetchtables('show tables')
# db3=db1.fetchtables('select * from **')
df1=db1.dataframes('select * from ****')

标签: python-3.xpandas

解决方案


像下面这样使用read_sql()

def _get_data(self):

    df= pd.read_sql("select col1,col2 from table_name", connection)
    return df

它将返回数据框


推荐阅读