Как сравнить два кадра данных, чтобы найти значение, которое появляется в одном, а не в другом? - PullRequest
1 голос
/ 30 марта 2020

Я работаю над проблемой из задачи VAST 2015 (http://vacommunity.org/VAST+Challenge+2015).

У меня есть большой df с точками данных, выслеживающими (вымышленными) людей, когда они перемещаются по тематическому парку. Каждый человек имеет уникальный идентификатор, а тип события - «регистрация» или «движение». Существует около 500-1000 точек данных для каждого идентификатора пользователя (ie. Многократные регистрации и несколько перемещений, записанных для каждого идентификатора). У df есть следующие столбцы;

 Timestamp    ID    Type X-coordinate   Y-Coordinate

0 2014-6-07 08:00:08    1102394  check-in  99 77

...

21 2014-6-07 08:00:15    1102394  movement  99 76  etc

В кадре данных имеется 6411 уникальных идентификаторов. Однако, из создания двух новых фреймов данных:

df_checkin = df.loc[df['type'] == "check-in"]
df_movement = df.loc[df['type'] == "movement"]

и выполнения ID value_counts для них, он показывает, что в то время как 6411 из идентификаторов записывают «движение», только 6410 записывает 'регистрироваться'.

Как можно сравнить эти значения значений (или go обратно с исходным df), чтобы определить, какой из 6411 IDs присутствует в записанном движении набора данных, но не в регистрации?

Спасибо!

Отредактировано, чтобы включить больше данных;

Движение df

Timestamp   id  type    X   Y
21  2014-6-07 08:00:27  657863  movement    7   43
27  2014-6-07 08:00:35  657863  movement    8   43
28  2014-6-07 08:00:36  1187304 movement    63  98
32  2014-6-07 08:00:39  1187304 movement    63  97
33  2014-6-07 08:00:42  1187304 movement    64  96
... ... ... ... ... ...
9078618 2014-6-07 23:35:24  694782  movement    63  99
9078619 2014-6-07 23:35:24  800018  movement    63  99
9078620 2014-6-07 23:35:24  9591    movement    63  99
9078621 2014-6-07 23:35:24  963248  movement    63  99
9078622 2014-6-07 23:35:24  972171  movement    63  99

Регистрация df

Timestamp   id  type    X   Y
0   2014-6-07 08:00:08  1102394 check-in    99  77
1   2014-6-07 08:00:08  1187304 check-in    63  99
2   2014-6-07 08:00:08  1363700 check-in    99  77
3   2014-6-07 08:00:10  1449032 check-in    63  99
4   2014-6-07 08:00:10  279658  check-in    63  99
... ... ... ... ... ...
9044493 2014-6-07 23:04:36  90727   check-in    42  37
9044495 2014-6-07 23:04:37  878118  check-in    42  37
9044496 2014-6-07 23:04:38  2044279 check-in    60  37
9044497 2014-6-07 23:04:39  1933890 check-in    60  37
9044498 2014-6-07 23:04:39  1962745 check-in    60  37

Счетчик значений движения

999107     2549
1723967    2528
685884     2523
697057     2518
1928560    2382
           ... 
1523741     343
1306211     326
1187304     309
590879      248
657863       73
Name: id, Length: 6411, dtype: int64

Счет значений регистрации

999107     43
1349992    41
204640     40
1928560    40
1285841    40
           ..
953838      1
1458915     1
1748887     1
1680161     1
417205      1
Name: id, Length: 6410, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...