首页 > 解决方案 > 熊猫创建一个基于月份和日期的新列?

问题描述

我有一个df带有date列的日期框:

date
2019-11-01
2019-11-02
2019-11-03
2019-11-04
2019-11-05
...
2021-04-01

. 我想创建一个新列is_in_period,其值为True是否date位于(11-15)明年(03-15)。比如df[df.date==pd.Timestamp('2019-11-17')]['is_in_period'] = True

标签: pandas

解决方案


首先通过方法将您的日期列转换为 datetime[ns] dtype to_datetime()

df['date']=pd.to_datetime(df['date'])

然后获取当前年份和下一年:

currentyear=df['date'].dt.year[0]
nextyear=currentyear+1

between()现在通过方法创建一个布尔掩码:

mask=df['date'].between(str(currentyear)+'-11-17',str(nextyear)+'-03-15')

最后:

df['is_in_period']=mask

推荐阅读