SQL 表中的数据不会传递到 pandas dataframe

问题描述 投票:0回答:1

我有一个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。

python mysql pandas dataframe
1个回答
1
投票

感谢ajsp的帮助:

您正在尝试将 sql_query_trans_cat 放入数据框中,当它 已经是一个数据框了。 pd.read_sql_query 返回实际的数据帧。 只需使用它,或创建一个副本。

© www.soinside.com 2019 - 2024. All rights reserved.