我有一个这样的 Dataframe ,我想创建一个新列next_domain
。
它是通过时间戳查找IP的下一个域来计算的。如果该域是某个IP的最后一个域,它是N/A。我怎么在Pandas中做到这一点?
- 输入:**
domain ip timestamp
0 Google 101 2020-04-01 23:01:41
1 Google 101 2020-04-01 23:01:59
2 Google 101 2020-04-02 12:01:41
3 Facebook 101 2020-04-02 13:11:33
4 Facebook 101 2020-04-02 13:11:35
5 Youtube 103 2020-04-21 13:01:41
6 Youtube 103 2020-04-21 13:11:46
7 Youtube 103 2020-04-22 01:01:01
8 Google 103 2020-04-22 02:11:23
9 Facebook 103 2020-04-23 14:11:13
10 Youtube 103 2020-04-23 14:11:55
- 预期产出:**
在下表中,第2行的switch = 1,因为它在同一IP之后立即切换到Facebook(如时间戳所示)。
第7行是一个开关,因为Youtube更改为Google的IP 103,第8行是一个开关,因为Google更改为Facebook的IP 103,第10行不是一个开关,因为没有域后,Youtube。
domain ip timestamp next_domain
0 Google 101 2020-04-01 23:01:41 Facebook
1 Google 101 2020-04-01 23:01:59 Facebook
2 Google 101 2020-04-02 12:01:41 Facebook
3 Facebook 101 2020-04-02 13:11:33 N/A
4 Facebook 101 2020-04-02 13:11:35 N/A
5 Youtube 103 2020-04-21 13:01:41 Google
6 Youtube 103 2020-04-21 13:11:46 Google
7 Youtube 103 2020-04-22 01:01:01 Google
8 Google 103 2020-04-22 02:11:23 Facebook
9 Facebook 103 2020-04-23 14:11:13 Youtube
10 Youtube 103 2020-04-23 14:11:55 N/A
2条答案
按热度按时间wmvff8tz1#
您可以保留每个拉伸的第一个域,每组
bfill
和shift
:输出:
bvhaajcl2#
输出: