だから、私はパンダで次のようなDFを持っています以下のようになります。複数の条件は
Name URL Extract
X http://www.x.com/abc/xyz/url.html abc
X http://www.x.com/yyz/hue/end.html yyz
Othername http://website.othername.com/abc.html website
Othername http://home.othername.com/someword/word.html home
Example http://www.example.com/999/something/index.html 999
ご覧のとおり、抽出したい部分はウェブサイトによって異なります。だから、 '名前'の下の値 'X'のために、私は1つの正規表現パターンを適用する必要があります。 'Othername'では、別のパターンです。
これには6種類の異なるパターンがあります。
私は「どこで」使ってみましたが、複数の条件を考慮していないウェブサイトのいずれかでのみ動作させることができました。次のように:
def ext(c):
if c['Name'] == 'X':
c.URL.str.extract(r'www\.x\.com\/(.*?)/')
elif c['Name'] == 'Example':
c.URL.str.extract(r'www\.example\.com\/(.*?)/')
(...)
else:
return ''
df['Extract'] = df.apply(ext)
df
がどのように異なるstrのためにこの作業を行うことができ、私は「名前」の下にあります
df['Extract'] = np.where(df['Name'] == 'X', df.URL.str.extract(r'www\.x\.com\/(.*?)/'),'')
を私はまた、このための関数を作成しようとしましたか?