3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果日期格式只是電影標(biāo)題末尾括號(hào)中的年份,請(qǐng)嘗試:
import re
df = pd.DataFrame({'movie':['Toy Story (1995)','Toy Story (no date)','Oddyssey 2000', 'Fort 6600', 'The Matrix (1999)', 'Jumanji', 'Interstellar (2014)']})
df:
movie
0 Toy Story (1995)
1 Toy Story (no date)
2 Oddyssey 2000
3 Fort 6600
4 The Matrix (1999)
5 Jumanji
6 Interstellar (2014)
使用正則表達(dá)式:
df[df.movie.apply(lambda x: bool(re.search('\([1-2][0-9]{3}\)$', x)))]
結(jié)果:
movie
0 Toy Story (1995)
4 The Matrix (1999)
6 Interstellar (2014)
非年份或不在括號(hào)中的數(shù)字將不會(huì)包含在結(jié)果中。我假設(shè)年份必須以 1 或 2 開(kāi)頭。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是因?yàn)樽兞縤存儲(chǔ)數(shù)據(jù)的副本,而不是原始引用。
所以,你應(yīng)該這樣做:
for i in range(len(df['title'])):
if df['title'][i][-1] != ')':
df['title'][i] = ''

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
i僅存儲(chǔ)數(shù)據(jù),它不是對(duì)列表項(xiàng)的引用。
你可以用枚舉來(lái)做到這一點(diǎn):
for index, element in enumerate(df['title']):
if element[-1] != ')':
df['title'][index] = ''
添加回答
舉報(bào)