Немного нового в python (Pandas), пожалуйста, помогите мне решить эту проблему
Вот так выглядит мой фрейм данных: -
Device_id - это идентификатор устройства, которое показывает (Msg) в момент (1524724677), время в эпоху.
Device_Id Msg Time
0 ABC123 connected 1524724677
1 ABC123 connected 1524724679
2 XYZ123 device failed 1524724814
3 ABC123 connected 1524725279
4 XVZ123 device failed 1524725300
5 PQR123 error 1524725325
6 ABC123 connected 1524725345
Мне нужно выполнить операцию над каждой строкой кадра данных, чтобы я мог добавить несколько новых столбцов.
датафрейм, который я хочу, будет выглядеть так: -
Device_Id Msg Time count
0 ABC123 connected 1524724677 1
1 ABC123 connected 1524724679 2
2 XYZ123 device failed 1524724814 1
3 ABC123 connected 1524725279 1
4 XVZ123 device failed 1524725300 1
5 PQR123 error 1524725325 1
6 ABC123 connected 1524725345 2
Этот столбец подсчета работает как для примера:
Пожалуйста, прочитайте все пункты, чтобы понять, как работает столбец подсчета
--for row(0) count is (1), bcoz this is the unique device
--we will increase the counter w.r.t (Time)
--we will reset the counter values after every 10 minutes
--for row(1) count is (2), bcoz time (1524724679) is between
1524724677 and 1524724677 + 10 minutes.
--for row(2), it is unique device and time(1524724679)
between 1524724677 and 1524724677 + 10 minutes so count is (1).
--for row(3), notice it is not unique device then also it has count=1
bcoz, time(1524725279) is not between 1524724677 and 1524724677 + 10
minutes. (Count reset)
--for col(4) count is (1), bcoz time (1524725300) is between
1524725279 and 1524725279 + 10 minutes.
--for col(5), count=1, unique device and time (1524725325) between 1524725279
and 1524725279 + 10 minutes.
--for col(6) count=2, bcoz time(1524725345) is between 1524725279
and 1524725279 + 10 minutes.
Значения счетчика будут сбрасываться через каждые 10 минут, что означает, что они будут начинаться с (1) для каждого идентификатора устройства.
через каждые 10 минут каждый уникальный идентификатор_устройства будет считаться новым, поэтому счет начинается снова с 1 и сохраняет свое значение в течение следующих 10 минут.