我正在创建事件标志(即第一个事件,最后一个事件,其他事件(在第一个和最后一个事件之间)。事件发生在每个游戏中(即 gsm_id )。我创建了记录第一个事件(第一个事件)和最后一个事件(上一个事件)在两个不同的列中。您可以查看下表以获取更多详细信息。
gsm_id eventdatetime matchdatetime PreviousEventTime First Event Last Event
2462794 8/11/2017 18:46 8/11/2017 18:45 8/11/2017 18:45 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 18:49 8/11/2017 18:45 8/11/2017 18:46 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 19:13 8/11/2017 18:45 8/11/2017 18:49 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 19:31 8/11/2017 18:45 8/11/2017 19:13 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 19:40 8/11/2017 18:45 8/11/2017 19:31 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 20:07 8/11/2017 18:45 8/11/2017 19:40 8/11/2017 18:46 8/11/2017 20:09
2462794 8/11/2017 20:09 8/11/2017 18:45 8/11/2017 20:07 8/11/2017 18:46 8/11/2017 20:09
2462795 8/12/2017 17:39 8/12/2017 16:30 8/12/2017 16:30 8/12/2017 17:39 8/12/2017 17:44
2462795 8/12/2017 17:44 8/12/2017 16:30 8/12/2017 17:39 8/12/2017 17:39 8/12/2017 17:44
2462796 8/12/2017 14:23 8/12/2017 14:00 8/12/2017 14:00 8/12/2017 14:23 8/12/2017 15:27
2462796 8/12/2017 14:38 8/12/2017 14:00 8/12/2017 14:23 8/12/2017 14:23 8/12/2017 15:27
2462796 8/12/2017 14:42 8/12/2017 14:00 8/12/2017 14:38 8/12/2017 14:23 8/12/2017 15:27
2462796 8/12/2017 15:08 8/12/2017 14:00 8/12/2017 14:42 8/12/2017 14:23 8/12/2017 15:27
2462796 8/12/2017 15:27 8/12/2017 14:00 8/12/2017 15:08 8/12/2017 14:23 8/12/2017 15:27
2462797 8/12/2017 14:22 8/12/2017 14:00 8/12/2017 14:00 8/12/2017 14:22 8/12/2017 15:17
2462797 8/12/2017 14:25 8/12/2017 14:00 8/12/2017 14:22 8/12/2017 14:22 8/12/2017 15:17
2462797 8/12/2017 15:17 8/12/2017 14:00 8/12/2017 14:25 8/12/2017 14:22 8/12/2017 15:17
可以从谷歌硬盘下载数据,如下所示:
[https://drive.google.com/open?id=1KPu8MBBd2X9tsV0sjMQQVQq4k9s5BYVs][1]
我想做的是这个。 我将创建一个新列来记录标志(字符串)(即'第一个事件'其中eventdatetime和First Event相同,'最后一个事件'其中eventdatetime和Last事件是相同的,其余的将分配为'其他'。 我尝试使用np.where方法,但它只能给我两个参数。 任何人都可以建议如何处理3个参数以获得上述新列?
由于 番
答案 0 :(得分:1)
我认为需要numpy.select
:
m1 = df['eventdatetime'] == df['First Event']
m2 = df['eventdatetime'] == df['Last Event']
df['flag'] = np.select([m1, m2], ['First event','Last event'], default='Other')
print (df)
gsm_id eventdatetime matchdatetime PreviousEventTime \
0 2462794 8/11/2017 18:46 8/11/2017 18:45 8/11/2017 18:45
1 2462794 8/11/2017 18:49 8/11/2017 18:45 8/11/2017 18:46
2 2462794 8/11/2017 19:13 8/11/2017 18:45 8/11/2017 18:49
3 2462794 8/11/2017 19:31 8/11/2017 18:45 8/11/2017 19:13
4 2462794 8/11/2017 19:40 8/11/2017 18:45 8/11/2017 19:31
5 2462794 8/11/2017 20:07 8/11/2017 18:45 8/11/2017 19:40
6 2462794 8/11/2017 20:09 8/11/2017 18:45 8/11/2017 20:07
7 2462795 8/12/2017 17:39 8/12/2017 16:30 8/12/2017 16:30
8 2462795 8/12/2017 17:44 8/12/2017 16:30 8/12/2017 17:39
9 2462796 8/12/2017 14:23 8/12/2017 14:00 8/12/2017 14:00
10 2462796 8/12/2017 14:38 8/12/2017 14:00 8/12/2017 14:23
11 2462796 8/12/2017 14:42 8/12/2017 14:00 8/12/2017 14:38
12 2462796 8/12/2017 15:08 8/12/2017 14:00 8/12/2017 14:42
13 2462796 8/12/2017 15:27 8/12/2017 14:00 8/12/2017 15:08
14 2462797 8/12/2017 14:22 8/12/2017 14:00 8/12/2017 14:00
15 2462797 8/12/2017 14:25 8/12/2017 14:00 8/12/2017 14:22
16 2462797 8/12/2017 15:17 8/12/2017 14:00 8/12/2017 14:25
First Event Last Event flag
0 8/11/2017 18:46 8/11/2017 20:09 First event
1 8/11/2017 18:46 8/11/2017 20:09 Other
2 8/11/2017 18:46 8/11/2017 20:09 Other
3 8/11/2017 18:46 8/11/2017 20:09 Other
4 8/11/2017 18:46 8/11/2017 20:09 Other
5 8/11/2017 18:46 8/11/2017 20:09 Other
6 8/11/2017 18:46 8/11/2017 20:09 Last event
7 8/12/2017 17:39 8/12/2017 17:44 First event
8 8/12/2017 17:39 8/12/2017 17:44 Last event
9 8/12/2017 14:23 8/12/2017 15:27 First event
10 8/12/2017 14:23 8/12/2017 15:27 Other
11 8/12/2017 14:23 8/12/2017 15:27 Other
12 8/12/2017 14:23 8/12/2017 15:27 Other
13 8/12/2017 14:23 8/12/2017 15:27 Last event
14 8/12/2017 14:22 8/12/2017 15:17 First event
15 8/12/2017 14:22 8/12/2017 15:17 Other
16 8/12/2017 14:22 8/12/2017 15:17 Last event