如何从表中选择系列中的值?

i2byvkas  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(337)

例如:

>>> df['id']
>>> 1   2324
    2   4323
    3   4321
    4   1232
    n   ....
...
>>> query = client.query('''
SELECT *
FROM my_table
WHERE id IN (df['id']) 

''').to_dataframe()

什么是正确的方式来称呼我的Pandas系列?有可能吗?
提前谢谢!

pes8fvy9

pes8fvy91#

您应该动态地构建 IN sql语句的一部分并生成 (2324, 4323...) 并将其附加到sql语句中。
如果dataframe包含的值太多,可以在sqlserver端创建一个临时表,将dataframe中的值插入到临时表中,然后执行常规联接。

xa9qqrwz

xa9qqrwz2#

你应该使用 join 要创建id列表和f字符串以将该列表插入查询,请执行以下操作:

all_ids = df['id'].astype(str).agg(','.join)
query = client.query(f'''
SELECT *
  FROM my_table
 WHERE id IN ({all_ids})
''').to_dataframe()

相关问题