2015-11-05 48 views
-1

我有一個熊貓數據幀如下...摺疊數據框列到一個字符串

import pandas as pd 
import numpy as np 
df = pd.DataFrame(np.array([['abc', 11], ['xyz', 21],['pqr',31]]),columns=['member','value']) 

我需要的是與輸出作爲一個SQL查詢,以摺疊單個字符串內柱「成員」以下...

"select * from table1 where member in ('abc','xyz','pqr')" 

在我的原始數據中,我有大量的值。我無法找到一種方法來從之前的問題搜索中摺疊出來。有沒有辦法做到這一點,而不使用循環?謝謝。

+0

所以你只想輸出'list'這樣的:'[「ABC」,「某某」 ,'pqr']'? –

+0

不......我希望它像一個單一的字符串,像'select * from table1'('abc','xyz','pqr')'中的成員,其中名字'abc'等被插入字符串 – Gaurav

回答

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) 
+0

這個在這個例子中,但在我的原始熊貓數據框中輸出如下...'select * from table1 where member in(u'advaitk',u'1SH12270466',u'6SH02948450',u'8SH42032457','.. 。當我做'members = tuple(advisors.memberlogin.tolist())'...時,爲什麼會出現這種情況,而另一個'u'出現在每個名稱之前,因爲成員元組包含了一個提及unicode的'type' – Gaurav

+0

您可以附加或顯示您在查詢中使用的一些名稱/數組嗎? –

+0

這可以通過從'str(member)'中刪除字符u來解決,但是有辦法首先避免它? – Gaurav

相關問題