我有一列由包含日期和時(shí)間的字符串組成。日期的格式為:mm/dd/yyyy、m/d/yyyy、m/dd/yyyy 和 mm/d/yyyy 我使用正則表達(dá)式幫助我提取 mm/dd/yyyy 和 m/d/yyyy。我無法提取 m/dd/yyyy 和 mm/d/yyyyimport pandas as pdimport redf = pd.read_csv('path of csv file')corpus = []for i in range(0,df.shape[0]): x = df.iloc[i]['OrderTime'] if re.search(r'\d{2}/\d{2}/\d{4}',x): ### for mm/dd/yyyy y= re.findall(r'\d{2}/\d{2}/\d{4}',x) corpus.append(y) elif re.search(r'\d{1}/\d{1}/\d{4}',x): ### for m/d/yyyy y= re.findall(r'\d{1}/\d{1}/\d{4}',x) corpus.append(y) elif re.search(r'\d{1}/\d{2}\d{4}',x): ### for m/dd/yyyy y= re.findall(r'\d{1}/\d{2}/\d{4}',x) corpus.append(y) elif re.search(r'\d{2}/\d{1}\d{4}',x): ### for mm/d/yyyy y= re.findall(r'\d{2}/\d{1}/\d{4}',x) corpus.append(y) else: ### empty cells or says nan y=["00/00/0000"] corpus.append(y)print(corpus)例如 - 日期是 12/1/2017 輸出是 2/1/2017(問題與 mm/d/yyyy)對(duì)于像 1/10/2018 這樣的日期輸出是 00/00/0000
3 回答

胡子哥哥
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
您知道“重復(fù)次數(shù)”可以是一個(gè)范圍而不是單個(gè)數(shù)字嗎?
re.findall(r'\d{1,2}/\d{1,2}\d{4}',x) ^^^^^ ^^^^^
添加回答
舉報(bào)
0/150
提交
取消