Home > Enterprise >  Generate Dates for next 10 Weekdays in Dataframe from the after last date in dataframe
Generate Dates for next 10 Weekdays in Dataframe from the after last date in dataframe

Time:05-02

I have dataframe df. Last Date is 2022-04-29 in df. I want to Generate next 10 weekday(exclding Saturday and Sunday) dates in this dataframe, other columns can have Nan values for generated dates.

df contains index as df.datetimeindex

df = df.set_index('Date').

df

               Open       High       Low          Close      Volume       Currency
Date                        
2021-04-26  14449.45    14557.50    14421.30    14485.00    448533331968    INR
2021-04-27  14493.80    14667.55    14484.85    14653.05    442211696640    INR
2021-04-28  14710.50    14890.25    14694.95    14864.55    453990809600    INR
2021-04-29  14979.00    15044.35    14814.45    14894.90    511466668032    INR
2021-04-30  14747.35    14855.45    14601.70    14631.10    594744508416    INR
... ... ... ... ... ... ...
2022-04-25  17006.10    17052.10    16889.75    16953.95    275571  INR
2022-04-26  17121.30    17223.85    17064.45    17200.80    261066000   INR
2022-04-27  17073.35    17110.70    16958.45    17038.40    265140000   INR
2022-04-28  17153.40    17314.45    17071.20    17245.05    312794  INR
2022-04-29  17329.25    17377.65    17053.25    17102.55    336244000   INR

Expected Output-

df

               Open       High       Low          Close      Volume       Currency
Date                        
2021-04-26  14449.45    14557.50    14421.30    14485.00    448533331968    INR
2021-04-27  14493.80    14667.55    14484.85    14653.05    442211696640    INR
2021-04-28  14710.50    14890.25    14694.95    14864.55    453990809600    INR
2021-04-29  14979.00    15044.35    14814.45    14894.90    511466668032    INR
2021-04-30  14747.35    14855.45    14601.70    14631.10    594744508416    INR
... ... ... ... ... ... ...
2022-05-02   Nan           Nan         Nan        Nan            Nan         Nan
2022-05-03   Nan           Nan         Nan        Nan            Nan         Nan
.....

Thanks.

CodePudding user response:

Try with pd.date_range and reindex:

df = df.reindex(df.index.union(pd.date_range(df.index.max(),periods=10,freq="B")))

>>> df
                Open      High       Low     Close       Volume Currency
2022-04-25  17006.10  17052.10  16889.75  16953.95     275571.0      INR
2022-04-26  17121.30  17223.85  17064.45  17200.80  261066000.0      INR
2022-04-27  17073.35  17110.70  16958.45  17038.40  265140000.0      INR
2022-04-28  17153.40  17314.45  17071.20  17245.05     312794.0      INR
2022-04-29  17329.25  17377.65  17053.25  17102.55  336244000.0      INR
2022-05-02       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-03       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-04       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-05       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-06       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-09       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-10       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-11       NaN       NaN       NaN       NaN          NaN      NaN
2022-05-12       NaN       NaN       NaN       NaN          NaN      NaN
  • Related