I have a dataframe with columns 'Transaction_Date' and 'Day_of_Week'. The former is a datetime64 format, the latter the day of the week spelled out. I'm trying to create a separate column called 'Week_of', which begins on Mondays. Specifically, if a row's 'Transaction_Date' has a 'Day_of_Week' of Monday, then I want 'Week_of' to be the same as 'Transaction_Date'. If it's Tuesday, then 'Week_of' is 'Transaction_Date' - 1 day; minus 2 days if Wednesday, and so on.
I've tried this code:
'''
Determine day of week
'''
df['Day_of_Week']=df['Transaction_Date'].dt.strftime('%A')
'''
Determine Week of Date
'''
# Create a value for Week_of date
if df[df['Day_of_Week']=='Monday']:
df['Week_of'] = df[df['Transaction_Date']]
elif df[df['Day_of_Week']=='Tuesday']:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=1)
elif df[df['Day_of_Week']=='Wednesday']:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=2)
elif df[df['Day_of_Week']=='Thursday']:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=3)
elif df[df['Day_of_Week']=='Friday']:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=4)
elif df[df['Day_of_Week']=='Saturday']:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=5)
else:
df['Week_of'] = df[df['Transaction_Date']]-dt.timedelta(days=6)
I get this error:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
How do I fix this?