python - 熊猫 - 将日期增加 1
问题描述
我有一个这样的数据框,
ID DateCol
1 26/06/2017
2 Employee Not Found
我想将日期增加 1。
预期的输出是,
ID DateCol
1 27/06/2017
2 Employee Not Found
我试过了,
temp_result_df['NewDateCol'] = pd.to_datetime(temp_result_df['DateCol']).apply(pd.DateOffset(1))
它不起作用,因为我相信它上面有一个字符串。
解决方案
对于缺失值,最好datetimes
在列中使用- 使用with或offset:NaT
to_datetime
Timedelta
Day
temp_result_df['NewDateCol'] = pd.to_datetime(temp_result_df['DateCol'], errors='coerce')
temp_result_df['NewDateCol'] += pd.Timedelta(1, 'd')
#alternative
#temp_result_df['NewDateCol'] += pd.offsets.Day(1)
print (temp_result_df)
ID DateCol NewDateCol
0 1 26/06/2017 2017-06-27
1 2 Employee Not Found NaT
如果需要像原始数据这样的字符串strftime
需要replace
:
s = pd.to_datetime(temp_result_df['DateCol'], errors='coerce') + pd.Timedelta(1, 'd')
temp_result_df['NewDateCol'] = s.dt.strftime('%d/%m/%Y').replace('NaT','Employee Not Found')
print (temp_result_df)
ID DateCol NewDateCol
0 1 26/06/2017 27/06/2017
1 2 Employee Not Found Employee Not Found
推荐阅读
- java - Android Java:用于滚动和过滤问题的列表视图的自定义适配器
- wordpress - 更改默认语言 slug
- bash - Find and count compressed files by extension
- python - How to change the column values of df1 with respect to single value in selected row of df2?
- python - 列表索引超出范围如何修复
- amazon-web-services - Using AWS Lambda Authorizer in API Gateway
- c# - 动态 Linq 包含多个值
- visual-studio-code - 在python中获取ModuleNotFoundError,包存在于虚拟环境中
- r - 如果条件使用 json 来抓取多个链接
- reactjs - 函数在组件更新之前执行