[英]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.