Итерация по индексу временных рядов в панде dataframe [python] - PullRequest
0 голосов
/ 20 октября 2019

Я новичок в питоне. Вот мои данные:

       x    y   location    id  label   zone    xx  yy
date                                
2019-10-08 00:00:01.913 456 293 12  2820    0   2   -1.0    0.0
2019-10-08 00:00:01.913 450 234 14  2819    0   3   0.0 -1.0
2019-10-08 00:00:01.913 169 274 0   2700    0   1   1.0 -2.0
2019-10-08 00:00:04.394 449 235 14  2819    0   3   -1.0    1.0
2019-10-08 00:00:04.394 162 282 0   2700    0   1   -7.0    7.0

Мне интересно подсчитывать уникальные идентификаторы в каждой зоне (есть 3 зоны, 0, 1,2) на почасовой основе. Вот моя попытка подсчитать количество уникальных идентификаторов в полной CSV:

for zone in df.zone.unique():
    print(len(df[df.zone==zone].id.value_counts())))

Я пытаюсь сделать это интерактивно на почасовой основе. Поскольку date является моим индексом, я попробовал следующее

for i in range(0,22): 
      df1=df['2019-10-08 %d:00:00':'2019-10-08 %d:00:00' %(i,i+1)]
      for zone in df1.zone.unique():
          print(len(df1[df1.zone==zone].id.value_counts()))

Возможно, это не самый лучший способ, это не работает.

Ошибка: TypeError: not all arguments converted during string formatting

В моем случае пересчет не возможен, так как я заинтересован в подсчете. Если у вас есть лучший метод, я хотел бы знать.

...