【发布时间】:2019-07-21 22:28:10
【问题描述】:
我有一个看起来像这样的数据集
I.D Timestamp
F322 2019-02-20 23:47:30.057
F322 2019-02-20 23:48:01.959
F322 2019-02-20 23:50:04.308
F422 2019-02-24 22:22:37.418
F422 2019-02-24 22:24:05.397
我正在尝试创建一个新列,将每个升序(已排序)时间戳的差异减去它之前的前一个时间戳,但按 I.D 列分组。一些 I.D 有 2、3 或 4 个时间戳。
输出看起来像这样
I.D Timestamp Minutes
F322 2019-02-20 23:47:30.057 NaN
F322 2019-02-20 23:48:01.959 0.5
F322 2019-02-20 23:50:04.308 2.0
F422 2019-02-24 22:22:37.418 NaN
F422 2019-02-24 22:24:05.397 1.5
我过去曾用过一些东西,例如下面的一些不同的东西
df.groupby('I.D')['Timestamp'].agg(lambda x: x.iat[0] < x.iat[-1])
np.where(df['I.D'].map(mask), 1, 2)
产生 1 或 2 的值,但这仅适用于按 I.D 分组的 a 的第一行和第二行,并且只产生一个值而不是计算。
感谢收看!
【问题讨论】:
-
什么是 0.9...?
-
抱歉,这只是该行时间戳和之前的行之间的分钟差
-
我认为这是一个误判!应该是我的答案中的 0.516667?
-
正确!对不起!
标签: python-3.x pandas timestamp pandas-groupby timedelta