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

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

在这篇文章中,我们将讨论如何从一个给定的数据框架的指定列中只提取有效日期。从指定列中提取的日期应该是 “mm-dd-yyy “的形式。

步骤:

在这篇文章中,我们使用正则表达式从数据框架的指定列中提取有效日期。这里我们使用了 \b(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/([0-9]{4})\b这个正则表达式。我们将使用re.findall()方法来实现。现在让我们试着用Python来实现这一点。

第1步:创建数据框架

# importing pandas and re library
import pandas as pd
import re as re
  
# creating data frame with column
# name,date_of_birth and age
df = pd.DataFrame({'Name': ['Akash', 'Shyam', 'Ayush',
                            'Diksha', 'Radhika'],
  
                   'date_of_birth': ['12/21/1998', '15/12/1998',
                                     '06/11/2000', '05/10/1998',
                                     '13/12/2010'],
  
                   'Age': [21, 12, 20, 21, 10]})
  
# printing the original data frame
print("Printing the original dataframe")
df

输出:

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

第2步:从数据框中提取有效日期,格式为’mm-dd-yyyy’。

# creating function to find whether the 
# given date is valid or not
def checking_valid_dates(dt):
      
    # creating regular expression to check 
    # whether date fall in the format 
    # mm-dd-yyyy
    result = re.findall(
        r'\b(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/([0-9]{4})\b', dt)
    return result
  
  
# creating new column with valid_date_of_birth
df['valid_date_of_birth'] = df['date_of_birth'].apply(
    lambda dt: checking_valid_dates(dt))
  
print("\nPrinting the data frame Valid dates in the format: mm-dd-yyyy:")
df

输出:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程