我想知道你是否可以帮助我解决我的问题 我正在尝试创建一个基于SQL QUERY获取数据帧的函数。
我的功能是:
def request_data(str,conn):
cur = conn.cursor()
cur.execute(str)
data = pd.read_sql_query(str, conn)
return data
当我尝试使用append方法应用函数时,得到的结果是我期望的!
Tables_to_initialize = ['sales', 'stores', 'prices']
Tables = []
for x in Tables_to_initialize:
Tables.append(request_data("SELECT * FROM {i} WHERE d_cr_bdd =
(SELECT MAX(d_cr_bdd) FROM {i} ) ; ".format(i = x),conn))
但是, Tables是一个列表,其中包含所有基于我的查询排序的数据框,我真正想要做的就是将列表中的每个元素分配给它的名称,例如
Tables_to_initialize[0] = 'sales'
并且我希望Tables [0]作为对象(数据框)销售。
是否有任何方法可以在函数内部或自动添加对象?或其他解决方案?
非常感谢您的帮助
最诚挚的问候,
答案 0 :(得分:0)
根据给定的查询获取对象列表。
table = [requested_data("SELECT * FROM {i} WHERE d_cr_bdd = (SELECT MAX(d_cr_bdd) FROM {i}".format(i)) for i in Tables_to_initialize ]