2016-08-04 51 views
0

在此基礎上QS從計算器創建一個SQL查詢: SQL where in clause using column in pandas dataframe使用數據框柱

我想:

import pandas as pd 

df1 = pd.DataFrame() 
df1['col1'] = [1,2,3,4,5] 

str = ','.join([str(x) for x in df1['col1'].unique().tolist()]) 

但是,我看到下面的錯誤:

TypeError: 'list' object is not callable 

我想在列中的所有獨特的項目查詢到另一個SQL表,然後將這些結果添加到我原來的數據幀

有另一種內置的方式共爲這一PLS?

感謝

回答

0

也許是這樣的:

df1['new'] = df1['col1'].apply(lambda x: f(x) if x in df1['col1'].unique().tolist() else 'n/a') 

你需要定義F(X)採取了獨特的價值,運行查詢,並返回要追加的結果。如果不是唯一值,您也可以將'n/a'更改爲任何您想要的值。

def f(x): 
    "RUN QUERY HERE" 
    return result 
+0

感謝VM - 我仍然需要了解如何LAMDA工作,然後應該怎麼我的高清F(X)的樣子.. 如果你願意,你能不能幫我怎麼能在格式使用查詢 'qry =「選擇id,SUM(收入)AS收入其中id IN(%s)分組由1」%str「 apols - newb here,anmd我沒​​有完全遵循您的回覆中的所有元素可能是做到這一點的最佳方式)猜測我只是要求一個更簡單的答案...? – spiff

+0

那麼你只是試圖通過從SQL表進行查找來添加一個新的列? – SO44

+0

不,我想對一個sql表進行查詢。查詢語句使用我DF中所有列的唯一元素。這個列的組成會不斷變化,因此希望能夠把它放在一個可以通過我的查詢語句訪問的變量中。就像上面例子中的str一樣 – spiff