Initial table
salesman training_date 01/20 02/20 03/20 04/20 05/20 06/20 07/20 08/20 09/20 10/20 11/20 12/20
0 John 2020-11-01 100 20 200 250 0 28 80 30 150 100 300 250
1 Ruddy 2020-07-12 90 50 30 225 300 100 95 10 20 0 20 100
In Python:
t1 = {'salesman': ['John', 'Ruddy'],
'training_date':['2020-11-30','2020-07-12'],
'01/20': [100, 90], '02/20':[20,50], '03/20':[200,30],'04/20':[250,225],'05/20':[0,300],'06/20':[28,100],
'07/20': [80, 95], '08/20':[30,10], '09/20':[150,20],'10/20':[100,0],'11/20':[300,20],'12/20':[250,100],
}
t1a = pd.DataFrame(data=t1)
t1a
Dataframe expected:
salesman training_date training_month 1m_prior 2m_prior 3m_prior 4m_prior 5m_prior 6m_prior
0 John 2020-11-30 300 100 150 30 80 28 0
1 Ruddy 2020-07-12 95 100 300 225 30 50 90
In Python:
t2 = {'salesman': ['John', 'Ruddy'],
'training_date':['2020-11-30','2020-07-12'],
'training_month': [300, 95], '1m_prior':[100,100], '2m_prior':[150,300],
'3m_prior':[30,225],'4m_prior':[80,30],'5m_prior':[28,50], '6m_prior': [0, 90]}
t2a = pd.DataFrame(data=t2)
t2a
Explanation:
John was trained on November 1st. 1m before November 1st, in October, John generated $100.
2m before November 1st, September, John generated $150.
Ruddy was trained on July 12th. 1m before July 12th, in June, Ruddy generated $100. 2m before July 12th, May, Ruddy generated $300.
In an ideal case, we start calculating 1 full month, always starting on the 1st of each month. So, if Ruddy was hired on July 12th, 2020, one month before should be 1 June - 30 June.
Up to this point, we transform the data manually in Excel.