提问人:Lok 提问时间:6/17/2023 最后编辑:TimelessLok 更新时间:6/17/2023 访问量:50
如何从数据帧中的字符串中提取日期 [duplicate]
How to extract date from a string within a dataframe [duplicate]
问:
我使用 pandas 读取一个表,并创建了一个名为 df 的数据帧。此数据框中名为“description”的一列包含如下所示的文本和数字:
描述 |
---|
蛋糕 01/02/1989 |
信息22031970 |
一些文字 |
价值观12345678987 |
我想从这个字段中提取日期,字段中的所有日期都采用“dd/mm/yyyy”或“ddmmyyyy”格式,并将结果输出为:
我已经试过了,但它在下面给了我,所以不起作用:df['extracted_col'] = df['description'].str.replace('\D+', '')
答:
1赞
Timeless
6/17/2023
#1
一个非常基本的方法是对模式进行硬编码并分别提取
每种格式的日期:
df["dd/mm/yyyy"] = df["description"].str.extract(r"(\d{2}/\d{2}/\d{4})", expand=False)
df["ddmmyyyy"] = df["description"].str.extract(r"\b(\d{8})\b", expand=False)
以防万一,我们需要确保掩盖
假日期:ddmmyyyy
fake_dates = pd.to_datetime(df["ddmmyyyy"], format="%d%m%Y", errors="coerce").isna()
df["ddmmyyyy"] = df["ddmmyyyy"].mask(fake_dates)
输出:
print(df)
description dd/mm/yyyy ddmmyyyy
0 A CAKE 01/02/1989 01/02/1989 NaN
1 information 22031970 NaN 22031970
2 some text 99889900 NaN NaN
3 values 12345678987 NaN NaN
上一个:python 如何透视数据帧
评论