【发布时间】:2018-08-12 14:41:39
【问题描述】:
您好,我有 dataframe,其中包含同一 ID 的多行。其中一列是日期(按升序排列)。我想计算第一个条目和最后一个条目之间的日期差。
我通过如下实例化一个 pandas 构造函数来做到这一点:
g = df.groupby('ID')
print(pd.DataFrame({'first':g.Date.nth(0), 'last':g.Date.nth(-1)}))
第一个值是正确的,但是最后一个值远不正确。
例如,对于特定 id,first date 是 2000-05-08,last date 是 8/21/2010。输出的结果是:
first last
ID
31965.0 2000-05-08 2002-12-29
2002-12-29 位于中间。
样本数据:
ID Date
31965 5/8/2000
31965 5/10/2000
31965 5/18/2000
31965 5/22/2000
31965 5/23/2000
31965 5/25/2000
31965 5/30/2000
31965 6/7/2000
31965 6/8/2000
31965 6/11/2000
31965 6/13/2000
.....
31965 4/11/2009
31965 5/9/2009
31965 5/16/2009
31965 5/23/2009
31965 2/5/2010
31965 2/26/2010
31965 3/13/2010
31965 4/10/2010
31965 8/21/2010
我希望 ID 31965 的结果为:2000 年 5 月 8 日和 2010 年 8 月 21 日,以便最终计算出日期差异。
【问题讨论】:
-
你能提供一个显示错误的示例数据集吗?
-
欢迎来到 SO。请提供 minimal reproducible example。
-
@ScottBoston 感谢您的评论。请查看我的编辑。
标签: python pandas date dataframe