我有一个这样的数据框
Name age city
John 31 London
Pierre 35 Paris
...
Kasparov 40 NYC
我想使用sql从redshift城市表中选择数据,其中城市包含在数据框的城市中
query = select * from city where ....
您能帮我完成此查询吗?
谢谢
答案 0 :(得分:0)
您可以尝试以下操作:
unique_cities = df['city'].unique()
# sql query
select * from city where name in unique_cities
答案 1 :(得分:0)
杰里尔的答案是正确的方向,但还不完整。 df.unique()结果不是一个字符串,而是一个系列。您的where子句中需要一个字符串
# create a string for cities to use in sql, the way sql expects the string
unique_cities = ','.join("'{0}'".format(c) for c in list(df['city'].unique()))
# output
'London','Paris'
#sql query would be
query = f"select * from city where name in ({unique_cities})"
上面的代码假设您正在使用python 3.x
请告诉我这是否可以解决您的问题