Python 从参数化SQL调用填充新的数据帧列

Python 从参数化SQL调用填充新的数据帧列,python,pandas,Python,Pandas,我有一个数据框,其单列tbl_name包含来自我的SQLite数据库的表列表: tables=pd.read\u sql\u查询(“从sqlite\u master中选择tbl\u名称,其中type='table',db) 我想添加一列,其中包含数据库中每个表的行数。我希望这能奏效: tables['count']=tables.apply(lambda行:pd.read_sql_查询(f“SELECT count(*)FROM{row['tbl_name'}),db).iloc[0,0])

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

tables=pd.read\u sql\u查询(“从sqlite\u master中选择tbl\u名称,其中type='table',db)
我想添加一列,其中包含数据库中每个表的行数。我希望这能奏效:

tables['count']=tables.apply(lambda行:pd.read_sql_查询(f“SELECT count(*)FROM{row['tbl_name'}),db).iloc[0,0])
这会抛出一个键错误。这行应该是什么样子

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

pd.read\u sql\u查询(f'SELECT COUNT(*)FROM help\u infotip',db).iloc[0,0]
>3
但是

tables['count']=tables.apply(lambda行:pd.read\u sql\u查询(f'SELECT count(*)FROM help\u infotip',db).iloc[0,0])
结果列中只包含NaN值,而不是3s

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

试试这个:

tables['count'] = tables.tbl_name.apply(lambda row : pd.read_sql_query(f"SELECT COUNT(*) FROM {row}", db).iloc[0,0])
在您的版本中,缺少轴=1,如下所示:

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