【发布时间】:2016-07-30 02:35:56
【问题描述】:
我有一个如下所示的数据框:
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 年 6 月 11 日和 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
我做错了什么?我正在使用熊猫 v0.18。
【问题讨论】:
-
啊 - 我认为我的日期格式不正确?我试过
df.date_published = pd.to_datetime(df.date_published.str.replace('Not required', ''), format='%d/%m/%Y'),但出现错误。 -
我无法使用 pandas 18.1 重现决赛桌...您没有将 '06/11/2015' 等转换为数据时间。只有“不需要”