Python -在整个DateTime索引中应用特定月份的值



我希望能够使["Indicator"] Col = True适用于整个数据框架中每年的前6个月。我也需要它是可变的。所以我以后可以每年申请前3个月或前10个月等。

添加了dict的复制/粘贴代码到df

设置df:

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

帮助将非常感激,谢谢!

您应该能够直接从时间戳索引

中提取月份
df["Indicator"] =  df.index.month <= 6

,您可以将6替换为所需的月数

最新更新