例如:
>>> 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()
给我的熊猫系列打电话的正确方法是什么?有可能吗?
提前谢谢!
答案 0 :(得分:0)
您应动态构建SQL语句的IN
部分,并生成(2324, 4323...)
并将其附加到SQL语句中。
如果您的DataFrame包含太多值,则可以在SQL Server端创建一个临时表,将DataFrame中的值插入到该临时表中,然后进行常规联接。
答案 1 :(得分:0)
您应该使用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()