2013-05-29 86 views
1

我想提取一個URL的某個部分,駐留在熊貓數據框的列中,並創建一個新列。這提取價值並創建新的列

ref = df['REFERRERURL'] 
ref.str.findall("\\d\\d\\/(.*?)(;|\\?)",flags=re.IGNORECASE) 

返回給我一個系列與元組。如何在之前取出該元組的中的一部分,以便我可以簡單地將其轉換爲列?對於referrerurl樣本數據

http://wap.blah.com/xxx/id/11/someproduct_step2;jsessionid=.... 

在這個例子中我感興趣的創建只有「someproduct_step2」在其列。

感謝,

回答

2
In [25]: df = DataFrame([['http://wap.blah.com/xxx/id/11/someproduct_step2;jsessionid=....']],columns=['A']) 

In [26]: df['A'].str.findall("\\d\\d\\/(.*?)(;|\\?)",flags=re.IGNORECASE).apply(lambda x: Series(x[0][0],index=['first'])) 
Out[26]: 
       first 
0 someproduct_step2 

在0.11.1這裏是這樣做,以及

In [34]: df.replace({ 'A' : "http:.+\d\d\/(.*?)(;|\\?).*$"}, { 'A' : r'\1'} ,regex=True) 
Out[34]: 
        A 
0 someproduct_step2 
0

的一種巧妙的方法這還曾

def extract(x): 
    res = re.findall("\\d\\d\\/(.*?)(;|\\?)",x) 
    if res: return res[0][0] 

session['RU_2'] = session['REFERRERURL'].apply(extract)