Как получить новый фрейм данных из диапазона дат, показывая каждый день в диапазоне дат, включая все мои столбцы - PullRequest
3 голосов
/ 01 июля 2019

У меня есть цикл for для всех моих строк, включающий даты начала и окончания столбцов, затем еще один цикл в первом цикле, который принимает диапазон между датами, так что он занимает каждый день в моих диапазонах. Мне нужно сделать новый df, который показывает каждый день в этих диапазонах и сохраняет остальные мои столбцы.

ID       Name      Manager     Client     Start        End       Rate       
5123     O Kin     D Jam       P Diddy    2-1-2019     6-6-2019  100        
1234     D Rus     A Gio       P Diddy    3-4-2018     4-7-2019  100    
3456     R Asd     G Nee       P Diddy    1-1-2018     5-5-2019  150    
6643     M Ben     C Gee       Tupeeee    3-3-2019     4-5-2019  120

Цель этого заключается в том, что при импорте в power bi в моем исходном наборе данных отображаются только даты начала и окончания, поэтому я не могу фильтровать. Мне нужно иметь возможность импортировать весь диапазон дат или, возможно, уникальный его? (Помощь), чтобы я мог отфильтровать месяц, день, год. Мой bus_days ниже показывает 12000 рабочих дней, а у меня всего 50 строк. Должен ли я импортировать с остальными из моих столбцов или в качестве даты данных? Это мои обязательные столбцы: Индекс (['ID', 'Имя', 'Менеджер', 'Клиент, «Дни», «Праздники», «Курс»]

for i, row in df.iterrows():

    busdays = []
    start = pd.to_datetime(df['Start_Date'][i])
    end = pd.to_datetime(df['End_Date'][i])
    holidays = df['Holidays'][i]       
    df['days'][i] = workdays(start, end, holidays)
    reve[i] = day[i] * rate[i]
    reve[i] = rev[i]*df['Percentage'][i]//100
    day_range =  pd.bdate_range(start, end)


    for day_ in day_range:
        date_str = datetime.datetime(day_.year, day_.month, day_.day, 0, 
        0)
        date_str = day_.strftime('%m, %d, %Y')
        date_ = datetime.datetime.strptime(date_str, "%m, %d, 
        %Y").date()
        busdays.append(date_str)

Мне нужно:

    ID      Name    Manager Client  Date          Rate
0   5123    O Kin   D James P Diddy 2-1-2019      100   
1   5123    O Kin   D James P Diddy 3-1-2019      100   
2   5123    O Kin   D James P Diddy 4-1-2019      150   
3   5213    O Kin   D James P Diddy 5-1-2019      120

у меня есть: даты на каждый день, т.е. рабочие дни (рабочие дни) с кодом

Мне нужно: остальные столбцы: ID Имя Менеджер Клиент Дата Рейтинг

Случайные даты в моем коде - это начальная и конечная даты в диапазоне с 01-01-2018 по 31-12-2019. Общее количество рабочих дней у меня составляет около 12000 от начального набора данных из 50 строк. Мне нужно заполнить другие столбцы, чтобы соответствовать датам Любые предложения будут оценены.

...