将熊猫列转换为逗号分隔的列表以在sql语句中使用

run*_*rds 2 csv dataframe pandas pandasql

我有一个数据框,并且我试图将列变成逗号分隔的列表。最终目标是将此逗号分隔的列表作为SQL查询中已过滤项的列表传递。

我该怎么做呢?

> import pandas as pd
> 
> mydata = [{'id' : 'jack', 'b': 87, 'c': 1000},
>           {'id' : 'jill', 'b': 55, 'c':2000}, {'id' : 'july', 'b': 5555, 'c':22000}] 
  df = pd.DataFrame(mydata) 
  df
Run Code Online (Sandbox Code Playgroud)

预期的解决方案-注意id周围的引号,因为它们是字符串,而列中的标题为“ b”的项是引号,因为这是一个数字字段,也是SQL的工作方式。然后我最终会发送一个查询

select * from mytable where ids in (my_ids)  or values in (my_values):
Run Code Online (Sandbox Code Playgroud)

my_ids ='jack','jill','july'

my_values = 87,55,5555

Ati*_*ska 5

虽然这是一篇过时的文章,但是我遇到了类似的问题,并使用valuesand tolist()as 在一行中解决了它

df['col_name'].values.tolist()
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下

my_ids = my_data['id'].values.tolist() # ['jack', 'jill', 'july']
my_values = my_data['b'].values.tolist()
Run Code Online (Sandbox Code Playgroud)