Pandas groupby и повторная выборка дают необычный результат

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

Я создал фрейм данных со следующими данными

 Time            Source      Destination     User ID
1/1/20 12:00    1.2.3.4     5.6.7.8         a1
1/1/20 12:01    1.3.4.5     6.7.8.9         a2
1/1/20 12:02    1.3.4.5     7.2.3.4         a2
1/1/20 12:03    1.2.3.4     5.6.7.8         a1
1/1/20 12:04    1.6.3.4     5.6.7.8         a3
1/1/20 12:05    1.3.4.5     6.7.8.9         a2
1/1/20 12:06    1.6.5.4     7.2.3.4         a4
1/1/20 12:07    1.3.4.5     5.6.7.8         a2
1/1/20 12:08    1.3.4.5     6.7.8.9         a2
1/1/20 12:09    1.2.3.4     7.2.3.4         a1
1/1/20 12:10    1.6.3.4     5.6.7.8         a3
1/1/20 12:11    1.3.4.5     6.7.8.9         a2
1/1/20 12:12    1.6.5.4     7.2.3.4         a4
1/1/20 12:13    1.2.3.4     5.6.7.8         a1
1/1/20 12:14    1.3.4.5     6.7.8.9         a2
1/1/20 12:15    1.3.4.5     7.2.3.4         a2
  

Я попытался использовать groupby с повторной выборкой, как показано ниже

 df3 = df2.groupby( [ "Source", "Destination","User ID"]).resample('5T').size().to_frame(name = 'count').reset_index()
df3 = df3.set_index('Time')
df3 = df3.sort_index()
  

И я получаю следующий результат (вставленный только для первых двух групп …)

 Time            Source      Destination     User ID     count
1/1/2020 12:00  1.2.3.4     5.6.7.8         a1          2
1/1/2020 12:00  1.3.4.5     6.7.8.9         a2          1
1/1/2020 12:00  1.3.4.5     7.2.3.4         a2          1
1/1/2020 12:00  1.6.3.4     5.6.7.8         a3          1
1/1/2020 12:05  1.2.3.4     7.2.3.4         a1          1
1/1/2020 12:05  1.3.4.5     6.7.8.9         a2          2
1/1/2020 12:05  1.3.4.5     7.2.3.4         a2          0
1/1/2020 12:05  1.6.3.4     5.6.7.8         a3          0
1/1/2020 12:05  1.6.5.4     7.2.3.4         a4          1
1/1/2020 12:05  1.3.4.5     5.6.7.8         a2          1
1/1/2020 12:05  1.2.3.4     5.6.7.8         a1          0
  

Мой вопрос в том, почему я получаю строки с количеством ‘0’?

Пример 1/1/2020 12:05 1.3.4.5 7.2.3.4 a2 0

Чего мне здесь не хватает?

Ответ №1:

Счетчики Python начинаются с 0 . Таким образом, вместо получения 1,2,3 Python выдает 0,1,2 . Если это проблема, вы всегда можете просто добавить 1 к каждому счетчику.

1/1/2020 12:05 1.3.4.5 7.2.3.4 a2 0 на самом деле равно 1.