关键词

使用Regex从给定的Pandas DataFrame的指定列中提取日期

首先,我们需要安装Python中的正则表达式库re。在命令行或者jupyter notebook中输入以下命令进行安装:

!pip install re

接下来,我们需要对DataFrame中的日期列进行正则匹配并提取出日期。

假设我们有以下DataFrame:

import pandas as pd

data = {'日期': ['2022/05/01 13:45:00', '2022/05/02 14:30:00', '2022/05/03 15:15:00']}
df = pd.DataFrame(data)

其中,日期列的格式为年/月/日 时:分:秒。我们要从这个列中提取出日期部分。

我们可以使用Pandas的apply函数以及正则表达式的re模块来实现。具体步骤如下:

  1. 定义一个函数,使用正则表达式从字符串中提取出日期。
import re

def extract_date(string):
    pattern = r'\d{4}/\d{2}/\d{2}'
    match = re.search(pattern, string)
    if match:
        return match.group()
    else:
        return None
  1. 调用apply函数将列中每个元素传递给这个函数,并将结果添加到新的一列中。
df['提取日期'] = df['日期'].apply(extract_date)

此时,我们就可以得到一个新的DataFrame,其中包含了从日期列中提取出来的日期。完整代码如下:

import pandas as pd
import re

data = {'日期': ['2022/05/01 13:45:00', '2022/05/02 14:30:00', '2022/05/03 15:15:00']}
df = pd.DataFrame(data)

def extract_date(string):
    pattern = r'\d{4}/\d{2}/\d{2}'
    match = re.search(pattern, string)
    if match:
        return match.group()
    else:
        return None

df['提取日期'] = df['日期'].apply(extract_date)

print(df)

输出结果为:

                   日期        提取日期
0  2022/05/01 13:45:00  2022/05/01
1  2022/05/02 14:30:00  2022/05/02
2  2022/05/03 15:15:00  2022/05/03

本文链接:http://task.lmcjl.com/news/14533.html

展开阅读全文