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

Posted

技术标签:

【中文标题】如何从表中选择熊猫系列中的值?【英文标题】:How to do a select from table where values in a pandas series? 【发布时间】:2020-06-24 02:08:09 【问题描述】:

例如:

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

什么是我的熊猫系列的正确称呼?有可能吗?

提前致谢!

【问题讨论】:

【参考方案1】:

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

如果您的 DataFrame 包含太多值,您可以在 SQL 服务器端创建一个临时表,将 DataFrame 中的值插入到该临时表中,然后进行常规连接。

【讨论】:

【参考方案2】:

您应该使用join 创建一个 id 列表和 f-string 以将该列表插入到查询中:

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

【讨论】:

以上是关于如何从表中选择熊猫系列中的值?的主要内容,如果未能解决你的问题,请参考以下文章

从表中的多个值中选择不在数组中的位置

如何对熊猫表中的值进行平均

如何从表中选择所有列并计数?

如何从表中的每个不同类别中选择三行?

如何将熊猫系列中的值分离到字典中?

如何从表中一次选择相等的值[重复]