I have a simplified Dataframe which can be set up as follows:
indexes =['01/10/2017', '28/10/2018', '27/10/2019', '30/10/2019']
cols = ['Period', 'A', 'B', 'C']
df= pd.DataFrame(index = indexes, columns= cols)
df.Period = 1
df = pd.concat([df, 2*df.copy(), 3*df.copy()])
df.sort_index()
The Dataframe looks like:
Period A B C
01/10/2017 1 NaN NaN NaN
01/10/2017 2 NaN NaN NaN
01/10/2017 3 NaN NaN NaN
27/10/2019 1 NaN NaN NaN
27/10/2019 2 NaN NaN NaN
27/10/2019 3 NaN NaN NaN
28/10/2018 1 NaN NaN NaN
28/10/2018 2 NaN NaN NaN
28/10/2018 3 NaN NaN NaN
30/10/2019 1 NaN NaN NaN
30/10/2019 2 NaN NaN NaN
30/10/2019 3 NaN NaN NaN
I want to find the rows that are in this list:
FwdTimeChangeDates = ['28/10/2018', '27/10/2019']
with Period that is > 2.
I want to +=2 to the Period with those conditions (So Period 3-->5, and 4-->6, etc.).
How do I filter based on the two conditions?
df.loc[FwdTimeChangeDates] Gives:
Period A B C
28/10/2018 1 NaN NaN NaN
28/10/2018 2 NaN NaN NaN
28/10/2018 3 NaN NaN NaN
27/10/2019 1 NaN NaN NaN
27/10/2019 2 NaN NaN NaN
27/10/2019 3 NaN NaN NaN
and
df.loc[df.Period>2]
Gives
Period A B C
01/10/2017 3 NaN NaN NaN
28/10/2018 3 NaN NaN NaN
27/10/2019 3 NaN NaN NaN
30/10/2019 3 NaN NaN NaN
and I want:
Period A B C
28/10/2018 3 NaN NaN NaN
27/10/2019 3 NaN NaN NaN
But I can't join the two conditions with:
df.loc[FwdTimeChangeDates & df.Period>1] or
df.loc[(FwdTimeChangeDates) & (df.Period>1)]