【问题标题】:For each row, count the number of dates that were within 12 months of each other?对于每一行,计算彼此相隔 12 个月内的日期数?
【发布时间】:2019-03-29 01:47:59
【问题描述】:

我希望遍历每一列并检查下一个日期是否在前一个日期的 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

【问题讨论】:

  • 展示您自己的努力和尝试解决问题的代码(如问题中正确格式化的文本)。如果您遇到特定问题,可以在这里提问。

标签: python date datetime dataframe


【解决方案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 的计数应该是 2 而不是 3:1. (date_2 - date_1) 和 2. ( date_3 - date_2)

【讨论】:

    猜你喜欢
    • 2012-10-28
    • 1970-01-01
    • 2013-11-28
    • 2017-01-16
    • 2016-05-09
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多