Создание флага события - PullRequest
0 голосов
/ 15 мая 2018

Я создаю флаг события (то есть первое событие, последнее событие, другое событие (между первым и последним событием). События происходят в каждой игре (то есть 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

Данные могут быть загружены с Google Drive следующим образом:

[https://drive.google.com/open?id=1KPu8MBBd2X9tsV0sjMQQVQq4k9s5BYVs][1]

То, что я пытаюсь сделать, это это. Я создам новый столбец для записи флага (строки) (то есть «первое событие», где eventdatetime и First Event одинаковы, «Last event», где eventdatetime и Last event совпадают, остальные будут назначены как «Other» , Я пытался использовать метод np.where, но он мог дать мне только два аргумента. Кто-нибудь может посоветовать, как обработать 3 аргумента, чтобы получить вышеупомянутый новый столбец?

Спасибо Zep

1 Ответ

0 голосов
/ 15 мая 2018

Я думаю, что нужно 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...