从数据框中的字符串中提取第一个日期

奥斯卡姆

我想从数据帧(Pandas)中提取格式为yyyy-mm-dd的第一个日期。如果找不到日期,则只需返回一个空字符串。这些是存储在数据框中的数据的一些示例。

1976-05-17 [ ]
[ ] 1976-05-172 
1976-05-17       
1976-05-17 Atlanta, Georgia U.S.  
1976-05-17 1975-07-11
( 1976-05-17 ) 1976-05-17 (age 38) [ ]

在所有情况下,我都想要1976-05-17或一个空字符串。

结果将在DataFrame上运行正则表达式,然后将结果添加到新列中

帕德拉克·坎宁安(Padraic Cunningham)

要获得search将在第一个匹配的子字符串处停止的首次使用

 r = re.compile("\d{4}-\d{2}-\d{2}")

使用样本:

lines = """1976-05-17 [ ]
[ ] 1976-05-172
1976-05-17
1976-05-17 Atlanta, Georgia U.S.
1976-05-17 1975-07-11
( 1976-05-17 ) 1976-05-17 (age 38) [ ]"""
r = re.compile("\d{4}-\d{2}-\d{2}")
for line in lines.splitlines():
    m = r.search(line)
    if m:
        print(m.group())

输出:

1976-05-17
1976-05-17
1976-05-17
1976-05-17
1976-05-17
1976-05-17

如果将其应用于df,则可以测试是否存在匹配项(如果有的话),使用匹配项,否则使用空字符串作为值,即

import pandas as pd

df = pd.read_csv("test.txt")
print(df)
def match(x):
    m = r.search(x)
    if m:
        return  m.group()
    return  ""

输出:

print(df)
print df["date"].apply(match)

                                     date
0                          1976-05-17 [ ]
1                         [ ] 1976-05-172
2                              1976-05-17
3        1976-05-17 Atlanta, Georgia U.S.
4                   1976-05-17 1975-07-11
5  ( 1976-05-17 ) 1976-05-17 (age 38) [ ]


0    1976-05-17
1    1976-05-17
2    1976-05-17
3    1976-05-17
4    1976-05-17
5    1976-05-17
Name: date, dtype: object

您还可以将列设置为等于返回值,str.extract如果您对不匹配项使用Nan可以的话:

print df["date"].str.extract(r"(\d{4}-\d{2}-\d{2})")

添加"foo"到列:

0    1976-05-17
1    1976-05-17
2    1976-05-17
3    1976-05-17
4    1976-05-17
5    1976-05-17
6           NaN
Name: date, dtype: object

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从存储在python数据框中的模式的字符串中提取第一个数字?

如何从熊猫数据框中的字符串中提取最后一个日期

如何从ANT中的:分隔的字符串中提取第一个元素

如何从VBA(Excel)中的字符串中提取第一个单词?

如何从python中的字符串中提取第一个浮点数

从字符串中提取第一个字符

从字符串集中提取第一个字符

替换字符串数据框pandas中的第一个值

从字符串中的 6 个数字中提取 3 个第一个数字

从字符串中提取第一个元素

从字母数字字符串中提取第一个数字

从第一个字母中提取子字符串

如何仅从第一个元素中提取类名作为字符串?

从Java中的字符串中提取第一个单词的最佳方法是什么?

从numpy数组中的每个字符串中提取第一个字母

找到字符串的第一个实例后,Python从字符串中提取n个句子

在R中,如果站点和日期在两个数据框中匹配,则从第一个数据框中提取行值

如何从数据框中的列中提取字符串模式,并创建一个包含提取的字符串的新数据框列?

如何从字符串中提取第一个和最后一个单词?

在php中提取第一个空格和最后一个空格之间的字符串

如何使用Python从数据框中的每个字符串中获取第一个单词?

从句子字符串中提取每个单词的第一个字符

如何从具有特定模式的字符串中提取第一个字符

删除熊猫数据框列中第一个出现空字符串之前的所有行

提取句子中的第一个字符串

使用 R 从重复出现的单词中提取字符串到第一个空格

查找字符串中的第一个日期

通过指定子字符串的第一个和最后一个来提取字符串中的子字符串

提取第一个和最后一个_之间的字符串