📌  相关文章
📜  使用正则表达式从给定 Pandas DataFrame 的指定列中提取日期(1)

📅  最后修改于: 2023-12-03 15:22:24.925000             🧑  作者: Mango

使用正则表达式从给定 Pandas DataFrame 的指定列中提取日期

有时候我们需要从一个 DataFrame 中提取某一列中的日期,同时该列日期的格式也可能不一定相同。这时候,我们可以使用正则表达式来解决这个问题。下面是提取日期的方法:

import pandas as pd
import re

# 创建样例数据
df = pd.DataFrame({'日期': ['2021-01-01', '2021/01/01', '01-01-2021', '1/1/2021']})

# 定义正则表达式模式
pattern = r'\d{4}[/-]\d{1,2}[/-]\d{1,2}'

# 提取日期数据并转换为 datetime 格式
df['日期'] = pd.to_datetime(df['日期'].str.extract(pattern), format='%Y/%m/%d')
print(df)

执行以上代码,输出结果如下:

          日期
0 2021-01-01
1 2021-01-01
2 2021-01-01
3 2021-01-01

其中,我们通过正则表达式模式 r'\d{4}[/-]\d{1,2}[/-]\d{1,2}' 来匹配日期格式,然后使用 str.extract 方法来提取符合该模式的日期数据,最后使用 pd.to_datetime 方法将提取出来的日期数据转换为 datetime 格式。

需要注意的是,如果 DataFrame 中有些数据格式不符合我们定义的正则表达式模式,那么会返回 NaN 值。另外,我们也可以根据实际需求来定义不同的正则表达式模式来提取不同格式的日期数据。

以上就是使用正则表达式从给定 Pandas DataFrame 的指定列中提取日期的方法,希望对大家有所帮助。