[英]Strange results from timedelta with pandas
I have a dataframe that looks like this: 我有一个看起来像这样的数据框:
df = pd.DataFrame({'date_sent': ['06/11/2015', '', 'Not required', '06/11/2015'],
'date_published': ['06/11/2015', '', '', '23/01/2016']})
I want to calculate the difference between the two dates in each row, so first I convert the strings to date objects: 我想计算每行中两个日期之间的差,所以首先将字符串转换为日期对象:
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', ''))
Then I subtract one from the other: 然后我从另一个减去一个:
df['delay'] = df.date_published - df.date_sent
But this gives me peculiar results - it's not 226 days between 06/11/2015 and 23/01/2016: 但这给了我奇特的结果-在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
What am I doing wrong? 我究竟做错了什么? I'm using pandas v0.18.
我正在使用pandas v0.18。
这些日期之间恰好是226天。
See if this helps. 看看是否有帮助。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.