[英]read_sql usage in functions
我试图在函数内使用 Pandas 的 read_sql()(来自 sqlalchemy),但它一直返回字符串而不是数据帧。
为什么会发生这种情况以及如何解决?
当我做这样的事情时:
table_name = pd.io.sql.read_sql(table_name, con=engine)
一切正常。 但是当我把它放在一个像这样的函数中时:
def sql_reading(table_name, comment):
table_name = pd.io.sql.read_sql(table_name, con=engine)
print('\x1b[1;31m'+comment +'\x1b[0m')
table_name.info()
return table_name
它返回有关 DataFrame 的信息,但不允许我将结果用作 DataFrame:
sql_reading(some_table_from_a_query, "Some comment")
Prints some_table_from_a_query.info(), everything is fine.
但是当我尝试打印出它的头部或尾部,或者在下一步中按字面意思使用 describe() 时,它返回一个错误:
some_table_from_a_query.info()
AttributeError: 'str' object has no attribute 'info'
UPD:返回 table_name 没有任何区别。
希望能解释一下它为什么会发生以及如何解决它。
您将字符串 'table_name' 与实际数据框混淆,您也将其称为 'table_name'。 这就是为什么您会收到字符串 (table_name) 没有属性“信息”的错误。 尝试为表和数据框使用不同的变量名称,例如:
def sql_reading(table_name, comment):
df_table_name = pd.io.sql.read_sql(table_name, con=engine)
print('\x1b[1;31m'+comment +'\x1b[0m')
df_table_name.info()
return df_table_name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.