【问题标题】:timedeltas for a groupby column in pandas [duplicate]pandas中groupby列的timedeltas [重复]
【发布时间】:2018-09-06 20:40:18
【问题描述】:

对于给定的数据框df

timestamps = [
    datetime.datetime(2018, 1, 1, 10, 0, 0, 0), # person 1
    datetime.datetime(2018, 1, 1, 10, 0, 0, 0), # person 2
    datetime.datetime(2018, 1, 1, 11, 0, 0, 0), # person 2
    datetime.datetime(2018, 1, 2, 11, 0, 0, 0), # person 2
    datetime.datetime(2018, 1, 1, 10, 0, 0, 0), # person 3
    datetime.datetime(2018, 1, 2, 11, 0, 0, 0), # person 3
    datetime.datetime(2018, 1, 4, 10, 0, 0, 0), # person 3
    datetime.datetime(2018, 1, 5, 12, 0, 0, 0)  # person 3
]
df = pd.DataFrame({'person': [1, 2, 2, 2, 3, 3, 3, 3], 'timestamp': timestamps })

我想为每个人 (df.groupby('person')) 计算那个人的所有时间戳之间的时间差,我想用diff() 来计算。

df.groupby('person').timestamp.diff()

只是一半,因为返回到人的映射丢失了。

解决方案是什么样的?

【问题讨论】:

  • 不,不是真正的重复。我错过了diff 需要transform 的那一点。这就是我的问题的答案。
  • 你有没有实际尝试过上面的dup?它工作正常..
  • 是的,正如您在我的问题中看到的那样,我正是这样做的(使用diff()),但这不是正确的解决方案。正如@jezreal 指出的那样,我错过了 diff 不会聚合值,但 transform 会。
  • 我认为这是用户错误的情况。如果您完全按照帖子中的描述应用逻辑,它就可以工作。我知道,因为我检查过。我将在这里发布一个示例。
  • 我很抱歉,确实是我的错误!很抱歉!

标签: python pandas datetime dataframe pandas-groupby


【解决方案1】:

我认为你应该使用

df.groupby('person').timestamp.transform(pd.Series.diff)

【讨论】:

    【解决方案2】:

    有问题diff没有聚合值,所以可能的解决方案是transform

    df['new'] = df.groupby('person').timestamp.transform(pd.Series.diff)
    print (df)
       person           timestamp             new
    0       1 2018-01-01 10:00:00             NaT
    1       2 2018-01-01 10:00:00             NaT
    2       2 2018-01-01 11:00:00 0 days 01:00:00
    3       2 2018-01-02 11:00:00 1 days 00:00:00
    4       3 2018-01-01 10:00:00             NaT
    5       3 2018-01-02 11:00:00 1 days 01:00:00
    6       3 2018-01-04 10:00:00 1 days 23:00:00
    7       3 2018-01-05 12:00:00 1 days 02:00:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2021-11-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      • 2021-02-24
      相关资源
      最近更新 更多