如何从系列中的值所在的表中进行选择?

2024-04-19 08:02:14 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:

>>> 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() 

叫我的熊猫系列的正确方式是什么?有可能吗

提前谢谢


Tags: toinfromclientiddataframedfmy
2条回答

应使用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()

您应该动态地构建SQL语句的IN部分,并生成(2324, 4323...)并将其附加到SQL语句中

如果数据框包含的值太多,可以在SQL server端创建一个临时表,将数据框中的值插入该临时表,然后进行常规联接

相关问题 更多 >