数据帧中字符串日期的正则表达式

时间:2018-08-06 11:35:18

标签: python regex pandas dataframe

enter image description here

假设我有一个数据框,其值字符串类似于:

[26.07. - 08.09.]  

,我想在最后一个“。”后面添加“ 2018”。在日期结束之前,这样我的输出将是:

[26.07.2018 - 08.09.2018] 

并将其应用于基本上具有相同格式的其余数据框。

到目前为止,我有代码:

df.iloc[:,1].replace('.','2018',regex=True)

如何更改我的代码,使其可以按我的意愿工作?

我这样做是为了最终使我能够将它们转换为可以计算两个日期之间有多少天的日期。

2 个答案:

答案 0 :(得分:0)

a = '[26.07. - 08.09.]'
aWithYear = [i[:-1]+'2018'+i[-1] for i in a.split('-')]

print('-'.join(aWithYear))
# prints [26.07.2018 - 08.09.2018]

答案 1 :(得分:0)

例如,如果您有

df = pd.DataFrame({'col': ['[05.07. - 18.08.]', '[05.07. - 18.09.]']})

col
0   [05.07. - 18.08.]
1   [05.07. - 18.09.]

您可以split并合并str.get(0)str.get(1)

vals = df.col.str.strip('[]').str.split("- ")
get = lambda s: vals.str.get(s).str.strip() + '2018'
df['col'] = '[' + get(0) + ' - ' + get(1) + ']'


col
0   [05.07.2018 - 18.08.2018]
1   [05.07.2018 - 18.09.2018]