I have a dataframe that represents this:
I need to create another column 'Mark'
and here is why it is complicated.
For the value 'C'
execution day is Sunday 8/11/2018
. The next day would be Monday 9/11/2018
.
So I need to calculate the weekdays
values of the previous week
. For this case I need to calculate 1/11/2018
,2/11/2018
,3/11/2018
,4/11/2018
and 5/11/2018
.
However, if the next day
of execution day
is Friday
or Saturday
I would need to take the values of the previous week 'Friday'
and 'Saturday'
. For example, B
executes on Thursday 12/11/2018'
. The day after is 'Friday'. So I need to calculate the average of the previous week's Friday
and Saturday
which are 6/11/2018
and 7/11/2018
Initially I did not had the Day
column, which I added afterwords by using
df['Execution']=pd.to_datetime(df['Execution'])
df['Day']=df['Execution'].dt.weekday_name
And I can get to the point where it prints something if execution date
matches with one of the column dates
. Here is the code-
for j,row in df.iterrows():
x=str(row['Execution'])
x=x[slicing]
for i, val in enumerate (df.columns.values):
print(df.columns[i])
if i<l1:
val=str(val)
val=val[slicing]
if x==val: #Execution date matches column date
print('yay')
I am trying to learn python on my own and I have started by learning pandas dataframe
.
However, Now I am lost and could not figure out the logic to proceed. Can anyone enlighten me the way?