Поскольку вы не сделали базу данных доступной, я создал ее с помощью модуля радара. Посмотрите, хотите ли вы сделать следующее:
import pandas as pd
import datetime
import radar
Создание кадра данных с датами повторения
inicio = datetime.date(year =2000, month =1, day =1)
fim = datetime.date(year =2001, month =1, day =1)
lista_dates = [radar.random_date(start =inicio, stop =fim) for i in
range(5000)]
df = pd.DataFrame({'date':lista_dates})
Затем посчитайте повторения каждой даты:
df['count_dates'] = df.groupby('date')["date"].transform('count')
Создайте отдельные переменные для 1 и 0:
df['perc_1'] = round(0.7*df['count_dates'])
df['perc_0'] = round(0.3*df['count_dates'])
Удалите дубликаты, теперь вы знаете количество повторений
df.drop_duplicates(subset = 'date', inplace = True)
df.reset_index(inplace = True)
df = df.astype('object')
создайте переменную 'isAuth'. Обратите внимание, что каждая ячейка имеет список со значением
df['isAuth'] = 'a'
for i in range(len(df)):
df['isAuth'][i] = list([1])*int(df['perc_1'][i])+list([0])*int(df['perc_0'][i])
Наконец, просто разверните каждый список, используя Explode
df = df.explode('isAuth').reset_index(drop = True)
df
PS: df.explode доступен только в пандах 0.25.0 или выше