gpt4 book ai didi

python - 从参数化 SQL 调用填充新的数据框列

转载 作者:行者123 更新时间:2023-12-01 07:09:12 25 4
gpt4 key购买 nike

我有一个数据框,其单列 tbl_name 包含我的 SQLite 数据库中的表列表:

tables = pd.read_sql_query("SELECT tbl_name FROM sqlite_master WHERE type = 'table'", db)

我想添加一列,其中包含数据库中每个表的行数。我希望这能起作用:

tables['count'] = tables.apply(lambda row : pd.read_sql_query(f"SELECT COUNT(*) FROM {row['tbl_name'}", db).iloc[0,0])

这会引发一个关键错误。这条线应该是什么样子?

更奇怪的是,为了诊断问题,我尝试仅使用一个表中的行数:

pd.read_sql_query(f'SELECT COUNT(*) FROM help_infotip', db).iloc[0,0]
>> 3

但是

tables['count'] = tables.apply(lambda row : pd.read_sql_query(f'SELECT COUNT(*) FROM help_infotip', db).iloc[0,0])

结果列中只有 NaN 值,而不是 3!

我显然犯了一些根本性的错误,但我看不出是什么。

最佳答案

试试这个:

tables['count'] = tables.tbl_name.apply(lambda row : pd.read_sql_query(f"SELECT COUNT(*) FROM {row}", db).iloc[0,0])

在您的版本中,缺少 axis=1,它应该如下所示:

tables['count'] = tables.apply(lambda row : pd.read_sql_query(f"SELECT COUNT(*) FROM {row['tbl_name']}", db).iloc[0,0], axis=1)

关于python - 从参数化 SQL 调用填充新的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com