使用正则表达式从给定 Pandas DataFrame 的指定列中提取日期
在本文中,我们将讨论如何从给定数据框的指定列中仅提取有效日期。从指定列中提取的日期应该是'mm-dd-yyyy'的形式。
方法:
在本文中,我们使用正则表达式从数据框的指定列中提取有效日期。这里我们使用了 \b(1[0-2]|0[1-9])/(3[01]|[12][0-9]|0[1-9])/([0-9] {4})\b 这个正则表达式。我们将为此使用 re.findall() 方法。现在让我们尝试使用Python来实现它:
第 1 步:创建数据框
Python3
# 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
Python3
# 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
输出:
第 2 步:从“mm-dd-yyyy”格式的数据框中提取有效日期
Python3
# 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
输出: