时间戳分析

qco9c6ql  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(546)

我有一个类似以下内容的数据集:

  1. ID DATE TAG
  2. S3800 1999-07-02 D
  3. S1190 1999-07-02 C
  4. S3131 1999-07-02 C
  5. S3131 1999-07-04 C
  6. S3131 1999-07-05 D

我试图计算每个id的记录之间的最小和最大时间间隔(以天为单位)。例如:

  1. ID MIN_TIME_GAP MAX_TIME_GAP
  2. S3131 1 3

列日期的格式为datetine64[ns]。我如何在Pandas身上做到这一点?

ru9i0ody

ru9i0ody1#

尝试:

  1. # if they aren't sorted already:
  2. df = df.sort_values(by="DATE")
  3. x = df.groupby("ID").agg(
  4. MIN_TIME_GAP=("DATE", lambda x: np.min(x.diff())),
  5. MAX_TIME_GAP=("DATE", lambda x: x.max() - x.min()),
  6. )
  7. print(x.dropna())

印刷品:

  1. MIN_TIME_GAP MAX_TIME_GAP
  2. ID
  3. S3131 1 days 3 days

编辑:要将时间增量转换为天,请执行以下操作:

  1. # convert to days:
  2. x["MIN_TIME_GAP"] = x["MIN_TIME_GAP"].dt.days
  3. x["MAX_TIME_GAP"] = x["MAX_TIME_GAP"].dt.days
  4. print(x)

印刷品:

  1. MIN_TIME_GAP MAX_TIME_GAP
  2. ID
  3. S3131 1 3
展开查看全部

相关问题