我有一个Python项目,我想从SQL表中读取数据,将该数据传递给pandas数据框,然后分析并绘制数据。
我遇到的问题是,某些数据不会传递到 panday 数据框,我不知道为什么。
我不知道如何解决这个问题。
这是我的代码:
# Get transaction data grouped by category
sql_query_trans_cat = pd.read_sql_query ('''
SELECT
category_in_out_id,
SUM (amount)
FROM Transactions
GROUP BY category_in_out_id
''', conn)
print(f"------------->> DEBUG Output of sql_query_trans_cat <<---------------------\n{sql_query_trans_cat}")
# Create a dataframe for all the transactions to be stored
df_trans_all = pd.DataFrame(sql_query_trans_all, columns = ['id', 'hash', 'valutadate', 'amount', 'transaction_text_id',
'account_id', 'asset_class_id', 'category_in_out_id', 'currency_id', 'int_or_ext_id', 'remarks'])
# Create a dataframe for the transactions grouped by category
df_trans_cat = pd.DataFrame(sql_query_trans_cat, columns = ['amount', 'category_in_out_id'])
print(f"------------->> DEBUG Output of df_trans_cat <<---------------------\n{df_trans_cat}")
print(f"------------->> DEBUG Output of df_trans_cat Data Types <<---------------------\n{df_trans_cat.dtypes}")
另请参阅此屏幕截图以了解更多信息:
我已经检查了数据类型是否正确,是的,pandas 列中的数据类型是 float64 我也已将 SQL 表中的数据定义为 float。
感谢ajsp的帮助:
您正在尝试将 sql_query_trans_cat 放入数据框中,当它 已经是一个数据框了。 pd.read_sql_query 返回实际的数据帧。 只需使用它,或创建一个副本。
”