이 목록을 기반으로 각 줄에서 마지막 문자를 추출해야합니다.
lst = [ '-ae-' , '-ap-' , '-vn-' , '-au-' , '-aw-' , '-be-' , '-bp-' , '-br-' , '-dz-' ]
다음은 샘플입니다 df['CN']
.
1: aes-sof-mar-goo-wh-en-ap-bro-sear-vn-loc
2: aes-br-mar-goo-ww-en-dz-bp-cen
3: aes-apt-au-goo-vn-en-br-bp
이 코드를 사용했습니다.
def param(df):
lst = ['-ae-','-ap-','-vn-','-au-','-aw-','-be-','-bp-','-br-', '-dz-']
for x in lst:
if x in df['CN']:
return x
df['budget'] = df.apply(param, axis=1)
목록에 표시된 마지막 요소를 반환해야합니다.
1: -vn-
2: -bp-
3: -bp-
하지만 내 코드는 각 줄의 첫 번째 요소를 반환했습니다.
1: -ap-
2: -br-
3: -au-
팬더 방식, series.str.findall()
및 사용 series.str()
:
pat=r'(?=({}))'.format('|'.join(re.escape(x) for x in lst))# @thanks Amadan
#'(?=(\\-ae\\-|\\-ap\\-|\\-vn\\-|\\-au\\-|\\-aw\\-|\\-be\\-|\\-bp\\-|\\-br\\-|\\-dz\\-))'
df['CN'].str.findall(pat).str[-1]
0 -vn-
1 -dz-
2 -br-
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다