我正在爲推薦系統使用電影鏡頭數據集。我想從標題欄中分割出電影的年份並將其放入名爲Year的新功能中。
import re
title = df3.title
df3.Year = re.findall('[(...)]', title)
標題
危險叟(1995)
軌枕(1996)
天堂電影院(諾沃天堂電影院)(1989)
我正在爲推薦系統使用電影鏡頭數據集。我想從標題欄中分割出電影的年份並將其放入名爲Year的新功能中。
import re
title = df3.title
df3.Year = re.findall('[(...)]', title)
標題
危險叟(1995)
軌枕(1996)
天堂電影院(諾沃天堂電影院)(1989)
假設它總是在字符串的末尾:
rgx = re.compile(r"(?:\((\d{4})\))?\s*$")
match = rgx.search(txt)
# group 1 will be None if not matched else eg '1989'
year = match.group(1)
TypeError Traceback
在rgx.search中使用df3.title嗎? – Che
@Che這似乎是df3.title不是字符串...這是你來鍛鍊 – donkopotamus
expr = re.compile('\((....)\)')
df3.Year = re.findall(expr, title)[-1]
我正在以下errorTypeError回溯(最後最近一次調用)
Anaconda2 \ lib中\返回_compile(模式,標誌).findall(字符串) 183 if if sys(模式,字符串,標誌)179 183空的匹配包含在結果中。 .hexversion> = 0x02020000: TypeError:預期的字符串或緩衝區 –
Che
您的代碼已被錯誤地轉錄答案。 '((...))'與給定的正則表達式不是同一個正則表達式,而且它看起來像你正在調用findall來編譯返回值。 – Sniggerfardimungus
將在今年始終在結束了嗎?標題中是否會有其他可能被誤認爲一年的內容?這年有沒有可能?您的規格(如所有規格)僅僅是一個*起點* :-) – paxdiablo
是的,每部電影的結尾都有一年的時間,每部電影都有一年的時間。但是,有一些觀察結果如下:七(a.k.a. Se7en)(1995);麥克馬倫兄弟,在(1995年) – Che
這應該是罰款,你只需要在字符串的東西月底像'(\ d +)'正則表達式搜索 - 退房@donkopotamus的回答。 – paxdiablo