Вместо создания нового столбца для каждой новой покупки, я думаю, лучше использовать один столбец и иметь инкрементное значение для последующей покупки для того же человека.
Использование фиктивных данных
import pandas as pd
df = pd.DataFrame({'Customer': ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
, 'Date_of_Purchase': ['10/02/2020', '27/01/2020', '27/04/2020', '26/03/2020', '21/02/2020',
'07/06/2020', \
'12/04/2020', '29/05/2020']})
Сначала отсортируйте клиентскую базу столбца по имени клиента:
df.sort_values(by=['Customer'], inplace=True)
Затем увеличьте количество покупок, используя приведенный ниже код:
df['n_purchase_times'] = df.groupby(['Customer']).cumcount() + 1
, что даст вам
Customer Date_of_Purchase n_purchase_times
0 a 10/02/2020 1
4 a 21/02/2020 2
1 b 27/01/2020 1
5 b 07/06/2020 2
2 c 27/04/2020 1
6 c 12/04/2020 2
3 d 26/03/2020 1
7 d 29/05/2020 2