时间德尔塔与熊猫的奇怪结果



我有一个看起来像这样的数据帧:

df = pd.DataFrame({'date_sent': ['06/11/2015', '', 'Not required', '06/11/2015'], 
                   'date_published': ['06/11/2015', '', '', '23/01/2016']})

我想计算每行中两个日期之间的差异,所以首先我将字符串转换为日期对象:

df.date_published =  pd.to_datetime(df.date_published.str.replace('Not required', ''))
df.date_sent =  pd.to_datetime(df.date_sent.str.replace('Not required', ''))

然后我从另一个中减去一个:

df['delay'] = df.date_published - df.date_sent

但这给了我特殊的结果——从2015年11月6日到2016年1月23日,这不是226天:

df
  date_published  date_sent    delay
0     2015-06-11 2015-06-11   0 days
1            NaT        NaT      NaT
2            NaT        NaT      NaT
3     2016-01-23 2015-06-11 226 days

我做错了什么?我使用的是pandas v0.18。

看看这是否有帮助。

   print pd.to_datetime('06/11/2016', dayfirst =True, format='%d/%m/%Y', errors = 'ignore')
   print pd.to_datetime('06/11/2016', format='%m/%d/%Y', errors = 'ignore')
2016-11-06 00:00:00
2016-06-11 00:00:00

这两个日期正好相隔226天。

最新更新