熊猫-日期增加1

时间:2019-02-26 13:22:59

标签: python pandas

我有一个这样的数据框,

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))

它不起作用,因为我相信上面有一个字符串。

1 个答案:

答案 0 :(得分:1)

最好在带有datetimes的列中的NaT中使用缺失值-将to_datetimeTimedeltaDay偏移量一起使用:

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

如果需要像原始数据这样的字符串,则需要strftimereplace

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