【问题标题】:Finding Date difference in list of dates [Pandas]在日期列表中查找日期差异 [Pandas]
【发布时间】:2016-02-03 01:43:32
【问题描述】:

假设以下数据集已排序日期列表:

dates=pd.DataFrame(data={'client':['1','2'],
                         'date':[['2012-3-10','2012-3-11','2012-3-12','2012-3-13','2012-3-14'],
                                 ['2012-3-12','2012-3-13','2012-3-16','2012-3-23']]})

我想以天数计算平均日期差异 因此,例如,对于 Client '2'Average Timelag 将是 2.75

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    开始于:

      client                                               date
    0      1  [2012-3-10, 2012-3-11, 2012-3-12, 2012-3-13, 2...
    1      2       [2012-3-12, 2012-3-13, 2012-3-16, 2012-3-23]
    

    你可以

    dates.groupby('client')['date'].apply(lambda x: [i / np.timedelta64(1, 'D') for i in np.diff([pd.to_datetime(c) for c in x])[0]])
    

    days 中获取timedelta

    client
    1    [1.0, 1.0, 1.0, 1.0]
    2         [1.0, 3.0, 7.0]
    

    dates.groupby('client')['date'].apply(lambda x: np.mean([i / np.timedelta64(1, 'D') for i in np.diff([pd.to_datetime(c) for c in x])[0]]))
    

    对于mean

    client
    1    1.000000
    2    3.666667
    

    【讨论】:

      【解决方案2】:

      这是重复的:

      Difference between two dates?

      您似乎可以使用 datetime 模块来解析您要导入到支持代数的对象中的日期和/或时间字符串。

      https://docs.python.org/2/library/datetime.html

      干杯

      【讨论】:

      • 我的主要问题是找不到日期的差异。更多的是通过值列表进行解析
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2019-01-18
      相关资源
      最近更新 更多