Подсчет значений времени в столбце - PullRequest
2 голосов
/ 01 августа 2020

У меня есть документ, который я импортировал с pandas в Python. В столбце есть значения времени, и я хочу узнать, сколько там значений для часов 8-10 и 10-12. Я не знаю, с чего начать. Я пробовал (data.loc[(data['Time'] >= 8 & (data['Time'] < 10)] , но у меня неверный синтаксис. Как это сделать?

TIME
08:04:16
08:04:53
...
10:04:05
...
08:59:21
...
15:56:10

Полные данные выглядят так: https://i.stack.imgur.com/avqWi.png

Ответы [ 2 ]

3 голосов
/ 01 августа 2020

преобразовать в timedelta

df.Time = pd.to_timedelta(df.Time)

m = (df.Time>='08:00:00') & (df.Time<'10:00:00')

df1 = df[m].copy()
1 голос
/ 01 августа 2020

Я полагаю, что ваш столбец имеет тип объект (на самом деле он содержит строку s).

Итак, первый шаг - преобразовать его в datetime type (часть даты берется из текущего дня, но это не имеет значения).

Затем вы должны прочитать от него час ( dt.hour ) и проверьте, находится ли он в желаемом диапазоне, например, используя между (на данный момент результат - bool Series).

И единственный оставшийся шаг - это сумма it (считая True значений).

Таким образом, код для проверки часов между 8 и 10 может быть:

pd.to_datetime(df.Time).dt.hour.between(8,10).sum()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...