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

时间:2020-06-24 02:08:09

标签: python sql pandas google-bigquery

例如:

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

给我的熊猫系列打电话的正确方法是什么?有可能吗?

提前谢谢!

2 个答案:

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