python - 替换数据框列中大于参考日期的日期
问题描述
我有一个数据框df
,它有日期,看起来像:
DATE_OF_ENTRY
0 24/02/2019
1 01/08/2003
2 05/11/2002
3 03/02/2003
4 04/08/2003
5 05/02/2003
6 30/06/2003
7 01/03/2004
8 17/09/2001
我还有一个名为的参考日期变量referencePeriodEndDate
,它当前等于'31/03/2019'
.
如果列中的日期大于参考日期,我正在尝试将 DATE_OF_ENTRY 列中的任何日期更改为“未知”。所以在上面的例子中我会返回:
DATE_OF_ENTRY
0 NOT KNOWN
1 01/08/2003
2 05/11/2002
3 03/02/2003
4 04/08/2003
5 05/02/2003
6 30/06/2003
7 01/03/2004
8 17/09/2001
数据框列和参考数据的类型有:
referencePeriodEndDate = type <class 'str'>
DATE_OF_ENTRY = type object
我尝试了以下方法:
referencePeriodEndDate = parser.parse(referencePeriodEndDate)
referencePeriodEndDate = referencePeriodEndDate.strftime('%d/%m/%Y')
df["DATE_OF_ENTRY"].loc[
df["DATE_OF_ENTRY"] > referencePeriodEndDate,
'DATE_OF_ENTRY'
] = 'NOT KNOWN'
和
df["DATE_OF_ENTRY"] = np.where(
df["DATE_OF_ENTRY"] > referencePeriodEndDate,
"NOT KNOWN", df["DATE_OF_ENTRY"]
)
没有成功。
解决方案
采用pd.to_datetime()
referencePeriodEndDate = pd.to_datetime('31/03/2019')
df['DATE_OF_ENTRY'] = pd.to_datetime(df['DATE_OF_ENTRY'])
df['DATE_OF_ENTRY'] = df['DATE_OF_ENTRY'].where(
df['DATE_OF_ENTRY'] <= referencePeriodEndDate, 'NOT KNOWN'
)
推荐阅读
- chef-infra - 如何在 Knife.rb 文件中屏蔽输出日志
- firefox - 如何在启用全屏的 iframe 中运行网站。firefox 进入全屏,但如果单击另一个链接 FF 退出
- reactjs - React JS Fluent ui onRenderTitle
- kubernetes - 启用自动缩放后,如何在 Spinnaker 中使用 Resize Server Group 阶段?
- typescript - 打字稿:“从不”类型上不存在属性“用户”
- reactjs - 如何在有条件渲染的组件中使用样式化组件在 React 中设置 onMouseLeave 过渡时间的样式
- arrays - 从数组中删除重复项,但根据条件保留特定的重复项
- javascript - 实用漏洞
- c++ - 如何按照标准实例化包含嵌套子类模板的类模板
- python - 如何从python将对象数组传递给CUDA内核,在pyCUDA中工作?