如何在Python中基于日期条件为DataFrame创建'Declined Or Hired'新列?
解决方案
先修正你原代码里的语法错误(列名的引号嵌套问题),再添加日期条件即可,步骤如下:
- 确保日期列是datetime类型(如果你的
Date列还不是日期格式,先执行这一步):
import pandas as pd df['Date'] = pd.to_datetime(df['Date'])
- 构建双条件并生成目标列:
# 条件1:指定列以"Offer Declined"开头 cond_declined = df["(Declined - Reason) Or Hire"].str.startswith('Offer Declined', na=False) # 条件2:日期在2022年1月1日至3月31日之间 cond_date = df['Date'].between('2022-01-01', '2022-03-31') # 也可以用年份+月份判断,效果一致: # cond_date = (df['Date'].dt.year == 2022) & (df['Date'].dt.month <= 3) # 合并条件,生成1/0列 df['Declined Or Hired'] = (cond_declined & cond_date).astype(int)
说明
- 用
&连接两个条件,表示必须同时满足才返回1,否则返回0 na=False会把缺失值视为不满足条件,避免报错astype(int)将布尔值(True/False)转换为整数(1/0)
内容的提问来源于stack exchange,提问作者Jed
相关产品推荐
相关产品推荐

