【发布时间】:2019-09-29 12:55:14
【问题描述】:
您好,我想提取数据框列中的日期,日期用“-”或“to”分隔
pop DATE
0 1.5 OWREAP-01/06/18to30/06/18
1 1.7 OW - 01/07/18 - 30/08/18
2 3.6 BCREAP - 01/08/18 to 30/08/18
3 2.4 BCGRA TO 01/08/18 to 30/08/18
我尝试将“to”和“TO”替换为“-”
df['DATE'].str.replace('to|TO','-')
pop DATE
0 1.5 OWREAP-01/06/18-30/06/18
1 1.7 OW - 01/07/18 - 30/08/18
2 3.6 BCREAP - 01/08/18 - 30/08/18
3 2.4 BCGRA - 01/08/18 - 30/08/18
现在我需要知道如何提取最后一个连字符前后的 8 个字符 即
pop type startdate enddate
0 1.5 OWREAP 01/06/18 30/06/18
1 1.7 OW 01/07/18 30/08/18
2 3.6 BCREAP 01/08/18 30/08/18
3 2.4 BCGRA 01/08/18 30/08/18
【问题讨论】:
-
您应该为此使用正则表达式。我将添加标签,让 regex-sharks 处理其余部分。
-
为什么不把
split放在' - '上并拿走最后两项?抄送。 @AntonvBR -
@AndrasDeak 好吧,看看原始数据帧,我们可以跳过中间步骤来替换到/TO,并通过使用正则表达式,我们确保我们得到正确格式的日期。但是,你没有错。还有其他方法可以解决。
-
r'([0-9\/]+)\s\S+\s([0-9\/]+)'作为正则表达式字符串为我工作
标签: python regex pandas dataframe datetime