3

Pandas Dataframe の列にある 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」のみを含む列を作成することに関心があります。

ありがとう、

4

2 に答える 2

4
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
于 2013-05-29T16:16:53.437 に答える
1

これも機能しました

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

session['RU_2'] = session['REFERRERURL'].apply(extract)
于 2013-05-31T07:12:23.467 に答える