为什么这个正则表达式没有提取日期python



所以我以前从未真正制作过自己的Regex表达式,我主要改编了我找到的表达式。由于我在python中找不到任何方法的想法,我想我应该试一试。

我使用.items()将dict转换为pandas-df,以获得一列中的名称,另一列生成了以下内容:

地点 日期
名称1 土壤N 2021-02-25 00:00:000 1。N-Rate 2021-03-12
名称2 土壤N 2021-02-25 00:00:000 1。N-Rate 2021-03-12
名称3 土壤N 2021-02-25 00:00:000 1。N-Rate 2021-03-09
名称4 土壤N 2021-02-25 00:00:000 1。N-Rate 2021-03-09
名称5 土壤N 2021-02-25 00:00:000 1。N-Rate 2021-03-12
名称6 土壤N 2021-02-25 00:00:000 1。N-Rate 2006-04-21

另一种替代

拆分并提取日期

place=['Name 1','Name 3']
Date=['Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-12',
'Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-09,']
df=pd.DataFrame(list(zip(place,Date)),columns=['place','Date'])
df['new']=df.Date.str.split('N-Rate').str[-1].str.extract(r'(d{4}-d{2}-d{1,2})')

思考可能出了什么问题,经过更多调整后,我认为我没有指定-应该与正则表达式中的数字分开

test['Date'].str.extract(r'(d{4}[-]d{2}[-]d{2})$', expand=True)

结果:

0   2021-03-12
1   2021-03-12
2   2021-03-09
3   2021-03-09
4   2021-03-12
5   2006-04-21

然后我刚刚添加到一个新的coltest['new_date] = test['Date'].str.extract(r'(d{4}[-]d{2}[-]d{2})$', expand=True)

编辑:如果不确定日期是1位还是2位,我只需添加一个逗号来指定或:

test['new_date] = test['Date'].str.extract(r'(d{4}[-]d{1,2}[-]d{1,2})$', expand=True)

我会注意到,我的例子比@balandongiv的更具限制性,因为字符串中的额外\w将产生一个NaN,因为我指定了$来显示它是字符串的末尾

您可以简单地尝试:

>>> df
Places                                              Date
0  Name 1  Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-12
1  Name 2  Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-12
2  Name 3  Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-09
3  Name 4  Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-09
4  Name 5  Soil N 2021-02-25 00:00:000 1. N-Rate 2021-03-12
5  Name 6  Soil N 2021-02-25 00:00:000 1. N-Rate 2006-04-21

结果:

>>> df['Date'].str.split(" ", expand=True)[6]
0    2021-03-12
1    2021-03-12
2    2021-03-09
3    2021-03-09
4    2021-03-12
5    2006-04-21
Name: 6, dtype: object

除此之外,如果你正在寻找Date,那么只使用下面的。

>>> df['Date'] = df['Date'].str.split(" ", expand=True)[6]
>>> df
Places        Date
0  Name 1  2021-03-12
1  Name 2  2021-03-12
2  Name 3  2021-03-09
3  Name 4  2021-03-09
4  Name 5  2021-03-12
5  Name 6  2006-04-21

最新更新