Divyank
Divyank

Reputation: 1057

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

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
.....

Upvotes: 0

Views: 83

Answers (1)

not_speshal
not_speshal

Reputation: 23146

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

Upvotes: 2

Related Questions