Работа с объектами времени в pandas python - PullRequest
0 голосов
/ 05 мая 2020

Я работаю с серией Pandas, которая содержит (Дата / Время) строки формы: «2020-04-01 09:29:21» - «2020-04-01 09:53:17» - "2020-04-13 09:55:55" -...).

Формат: «гггг-мм-дд Ч: М: с».

Меня интересуют только компоненты часа и минуты, и я ищу способ разделить данные на 30-минутные сегменты и подсчитать значения в каждом сегменте.

Пример моего конечного результата:

   Range         count       
  9:00-9:30        7
  9:30-10:00       25
 10:00-10:30       35.......

1 Ответ

0 голосов
/ 05 мая 2020

Вам нужно сначала пересэмплировать, а затем сделать группировку по времени. Давайте создадим ser ie и установим индекс в DateTimeIndex, иначе повторная выборка не будет работать:

# random data
np.random.seed(0)
serie = pd.Series(
    np.random.choice(pd.date_range(
        '2020-01-01', freq='7T22S', periods=10000), 1000)
)
serie.index = serie

Сделайте повторную выборку, а затем выполните группировку:

res = serie.resample('30T').count()
results = res.groupby(res.index.time).sum()

#Change the index to match the format
results.index = results.index.astype(str) + ' - ' +\
            np.roll(results.index.astype(str), -1)

results.head()

# 00:00:00 - 00:30:00    19
# 00:30:00 - 01:00:00    25
# 01:00:00 - 01:30:00    19
# 01:30:00 - 02:00:00    28
# 02:00:00 - 02:30:00    22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...