我有一个pandas数据帧如下......
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['abc', 11], ['xyz', 21],['pqr',31]]),columns=['member','value'])
我需要的是将输出作为SQL查询的单个字符串中的列'member'折叠如下...
"select * from table1 where member in ('abc','xyz','pqr')"
在我的原始数据中,我有大量的值。我无法找到一种方法来解决以前的问题搜索。有没有办法在不使用循环的情况下执行此操作?感谢。
答案 0 :(得分:2)
您可以使用有趣列的tolist方法,然后将其转换为元组,然后转换为字符串:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.array([['abc', 11], ['xyz', 21],['pqr',31]]),columns=['member','value'])
sql_string = "select * from table1 where member in "
members = tuple(df.member.tolist())
query = sql_string + str(members)