我有一个具有以下 struct 的数据帧(df):
retweet_datetime | tweet_id | tweet_datetime |
---|---|---|
2020-04-24 03:33:15 | 85053699 | 2020-04-24 02:28:22 |
2020-04-24 02:43:35 | 85053699 | 2020-04-24 02:28:22 |
2020-04-18 04:24:03 | 86095361 | 2020-04-18 00:06:01 |
2020-04-18 00:19:08 | 86095361 | 2020-04-18 00:06:01 |
2020-04-18 00:18:38 | 86095361 | 2020-04-18 00:06:01 |
2020-04-18 00:07:08 | 86095361 | 2020-04-18 00:06:01 |
retweet\u datetime按最新的retweet排序.
我想创建两个新列,如下所示:
-
tweet_lifetime1
:last retweet time和first retweet time之间的差异,即对于每个tweet\u id:last retweet\u datetime-first retweet\u datetime -
tweet_lifetime2
:最后一次转发时间和推特创建时间之间的差异(tweet_datetime
)
更新1:
例如,对于推特id:"86095361":
-
tweet_lifetime1
=2020-04-18 04:24:03 - 2020-04-18 00:07:08
(04:16:55
) -
tweet_lifetime2
=2020-04-18 04:24:03 - 2020-04-18 00:06:01
(04:18:02
)
预期输出df:
retweet_datetime | tweet_id | tweet_datetime | lifetime1 | lifetime2 |
---|---|---|---|---|
2020-04-24 03:33:15 | 85053699 | 2020-04-24 02:28:22 | 00:49:40 | 01:04:53 |
2020-04-18 04:24:03 | 86095361 | 2020-04-18 00:06:01 | 04:16:55 | 04:18:02 |
我看到过几个类似的帖子,但它们大多是减go 连续的行.
df2 = df.assign(delta = df.groupby('tweet_id')['retweet_datetime'].diff())
有人能帮我吗?
非常感谢.
答案:
jezrael和Shubham的回答都很完美.我希望我能接受这两个答案.