I have done a try with python as below:
import pandas as pd
df = pd.read_csv("master_list.csv", usecols = ['Duration'])
#month manipulation starts
df[df['Duration'].fillna('').str.contains('Months') & df['Duration'].fillna('').str.len().gt(0)]
df["Duration"] = df["Duration"].str.replace("\sMonths", "")
df['Duration'] = pd.to_numeric(df['Duration'], errors='coerce').fillna(0).astype(float)
df['Duration'] *= 30.436875
#month manipulation end
df[df['Duration'].fillna('').str.contains('Weeks') & df['Duration'].fillna('').str.len().gt(0)]
df["Duration"] = df["Duration"].str.replace("\sWeeks", "")
#df['Duration'] *= 30.436875
print(df)
Sample_Data = ["7 Months","1 Year","8 Weeks","3 Days"]
Expected Output = ["210 Days","365 Days","56 Days","3 Days"]
Module dateparser can parse text with weeks
, years
, months
, days
, etc.
import dateparser
import datetime
sample_data = ["7 Months","1 Year","8 Weeks","3 Days"]
today = datetime.datetime.now()
for item in sample_data:
result = dateparser.parse(item)
diff = today.date() - result.date()
print(item, '|', diff.days)
Result:
7 Months | 212
1 Year | 365
8 Weeks | 56
3 Days | 3
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.