Pandas: Extract date from a given column of a given DataFrame
Write a Pandas program to extract date (format: mm-dd-yyyy) from a given column of a given DataFrame.
Sample Solution:
Python Code :
import pandas as pd
import re as re
df = pd.DataFrame({
'company_code': ['Abcd','EFGF', 'zefsalf', 'sdfslew', 'zekfsdf'],
'date_of_sale': ['12/05/2002','16/02/1999','05/09/1998','12/02/2022','15/09/1997'],
'sale_amount': [12348.5, 233331.2, 22.5, 2566552.0, 23.0]
})
print("Original DataFrame:")
print(df)
def find_valid_dates(dt):
#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
df['valid_dates']=df['date_of_sale'].apply(lambda dt : find_valid_dates(dt))
print("\nValid dates (format: mm-dd-yyyy):")
print(df)
Sample Output:
Original DataFrame: company_code date_of_sale sale_amount 0 Abcd 12/05/2002 12348.5 1 EFGF 16/02/1999 233331.2 2 zefsalf 05/09/1998 22.5 3 sdfslew 12/02/2022 2566552.0 4 zekfsdf 15/09/1997 23.0 Valid dates (format: mm-dd-yyyy): company_code date_of_sale sale_amount valid_dates 0 Abcd 12/05/2002 12348.5 [(12, 05, 2002)] 1 EFGF 16/02/1999 233331.2 [] 2 zefsalf 05/09/1998 22.5 [(05, 09, 1998)] 3 sdfslew 12/02/2022 2566552.0 [(12, 02, 2022)] 4 zekfsdf 15/09/1997 23.0 []
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to check whether two given words present in a specified column of a given DataFrame.
Next: Write a Pandas program to extract only words from a given column of a given DataFrame.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics