对于每一行,计算彼此相隔12个月内的日期数吗?

时间:2019-03-29 01:48:00

标签: python date datetime dataframe

我希望遍历每列,并检查下一个日期是否在上一个日期的12个月内。

例如,这是一个示例。日期已排序。

row_id|date_1    |date_2     |date_3     |date_4     |date_5    |count
   1   2006-07-28 2006-08-18  2007-01-02  2009-01-28  2011-02-03  3
   2   2000-07-21 2002-02-18  2004-05-02  2009-01-28  2011-02-03  0

1 个答案:

答案 0 :(得分:1)

我认为样本输出中的计数是不正确的。这是我所拥有的:

import pandas as pd

>>>df
   row_id     date_1     date_2     date_3     date_4     date_5
0       1 2006-07-28 2006-08-18 2007-01-02 2009-01-28 2011-02-03
1       2 2000-07-21 2002-02-18 2004-05-02 2009-01-28 2011-02-03

df.set_index('row_id', inplace=True)
df['count'] = df.diff(axis=1).lt(pd.Timedelta('1Y').sum(axis=1)

>>>df
           date_1     date_2     date_3     date_4     date_5  count
row_id
1      2006-07-28 2006-08-18 2007-01-02 2009-01-28 2011-02-03      2
2      2000-07-21 2002-02-18 2004-05-02 2009-01-28 2011-02-03      0

row_id 1的计数应为2,而不是3:1( date_2 - date_1 )和2。( date_3 - date_2