【发布时间】:2017-07-20 09:06:28
【问题描述】:
我的数据框有两列。当我减去它们以获得中间的月份时,我得到了一些奇怪的数字。这是一个例子:
test = pd.DataFrame({'reg_date': [datetime(2017,3,1), datetime(2016,9,1)],
'leave_date':[datetime(2017,7,1), datetime(2017,6,1)]})
test['diff_month'] = test.leave_date.dt.month - test.reg_date.dt.month
test
输出:
如果用户的 register_date 是去年,我得到一个负数(也是不正确的)。
我应该执行哪些操作来获得两个日期时间列之间的正确月份时差?
更新:我稍微更改了示例,以便更多地反映我所面临的问题。不要这么快就投反对票。
我为解决此问题所做的一个技巧是:
test['real_diff'] = test.diff_month.apply(lambda x: x if x > 0 else 12+x)
我不喜欢黑客,所以我很好奇是否有其他方法。
【问题讨论】:
-
b.month = 5, a.month = 12 --> 5 - 12 = -7 .. 也许试试
a.month-b.month