Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Python – Applying values for specific months across entire DateTime Index

I want to be able to make ["Indicator"] Col = True for the first 6 months of every year across the entire Data Frame. I need it to be variable as well. So I can later apply to the first 3 months or first 10 etc. for each year.

Added copy/paste code for dict to df

Setup df:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

import pandas as pd
from pandas import Timestamp
nan = 0

data = {'Price': {Timestamp('2018-01-01 00:00:00', freq='MS'): 100,
  Timestamp('2018-02-01 00:00:00', freq='MS'): 100,
  Timestamp('2018-03-01 00:00:00', freq='MS'): 105,
  Timestamp('2018-04-01 00:00:00', freq='MS'): 105,
  Timestamp('2018-05-01 00:00:00', freq='MS'): 105,
  Timestamp('2018-06-01 00:00:00', freq='MS'): 108,
  Timestamp('2018-07-01 00:00:00', freq='MS'): 108,
  Timestamp('2018-08-01 00:00:00', freq='MS'): 108,
  Timestamp('2018-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2022-01-01 00:00:00', freq='MS'): 210,
  Timestamp('2022-02-01 00:00:00', freq='MS'): 200,
  Timestamp('2022-03-01 00:00:00', freq='MS'): 261,
  Timestamp('2022-04-01 00:00:00', freq='MS'): 220,
  Timestamp('2022-05-01 00:00:00', freq='MS'): 200,
  Timestamp('2022-06-01 00:00:00', freq='MS'): 180,
  Timestamp('2022-07-01 00:00:00', freq='MS'): 185,
  Timestamp('2022-08-01 00:00:00', freq='MS'): 200,
  Timestamp('2022-09-01 00:00:00', freq='MS'): 175.0,
  Timestamp('2022-10-01 00:00:00', freq='MS'): 175.0,
  Timestamp('2022-11-01 00:00:00', freq='MS'): 175.0,
  Timestamp('2022-12-01 00:00:00', freq='MS'): 175.0},
 'Vol': {Timestamp('2018-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2018-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2019-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2020-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-01-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-02-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-03-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-04-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-05-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-06-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-07-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-08-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-09-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-10-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-11-01 00:00:00', freq='MS'): nan,
  Timestamp('2021-12-01 00:00:00', freq='MS'): nan,
  Timestamp('2022-01-01 00:00:00', freq='MS'): 16000,
  Timestamp('2022-02-01 00:00:00', freq='MS'): 10000,
  Timestamp('2022-03-01 00:00:00', freq='MS'): 12000,
  Timestamp('2022-04-01 00:00:00', freq='MS'): 40000,
  Timestamp('2022-05-01 00:00:00', freq='MS'): 20222,
  Timestamp('2022-06-01 00:00:00', freq='MS'): 67885,
  Timestamp('2022-07-01 00:00:00', freq='MS'): 12345,
  Timestamp('2022-08-01 00:00:00', freq='MS'): 5654,
  Timestamp('2022-09-01 00:00:00', freq='MS'): 75334,
  Timestamp('2022-10-01 00:00:00', freq='MS'): 45653,
  Timestamp('2022-11-01 00:00:00', freq='MS'): 432467,
  Timestamp('2022-12-01 00:00:00', freq='MS'): 457543}}


df = pd.DataFrame.from_dict(data)
df['Indicator'] = False
df

Help would be much appreciated thanks!

>Solution :

you should be able to directly extract the month from the timestamp index

df["Indicator"] =  df.index.month <= 6

and you can replace the 6 with the desired number of months

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading