Я начал изучать панд уже несколько дней, чтобы я мог провести несколько анализов большого набора данных, который я получил.
Моя цель:
1. Чтобы визуализировать счетчик сканирования в минуту. (х = время, у = количество полных сканирований)
2. Для визуализации сканов в минуту на графике. (х = время, у = количество сканирований в минуту)
Если это не достаточно ясно, дайте мне знать, и я сделаю все возможное, чтобы объяснить это.
Я создал новый DataFrame, состоящий из 2 столбцов: Тип сканирования и Время
$ df.head()
Scan Type Time
0 Mobile Multi Reject 13:32:00
1 Mobile Multi Reject 13:33:00
2 Mobile Multi Reject 13:33:00
3 Barcode Reject 13:34:00
4 Barcode Entry 13:34:00
Типы данных следующие:
$ df.dtypes
Scan Type object
Time object
dtype: object
Моим следующим шагом было преобразование объекта Time в datetime:
$ df['Time'] = pd.to_datetime(df['Time'], format='%H:%M:%S')
$ df.dtypes
Scan Type object
Time datetime64[ns]
dtype: object
Затем я последовал этому ответу https://stackoverflow.com/a/21333244/1067213, чтобы представить данные, основанные на подсчете, и получил следующее:
![Scan Types based on Time](https://i.stack.imgur.com/2WAoX.png)
Выпуск 1: Время указано неверно, и я не понимаю, что оно использует как время. График кажется верным, поскольку ожидаемые пиковые моменты и поток сканирования совпадают с ожидаемыми (по опыту).
Проблема 2: Мне не удалось представить общее количество сканирований на основе времени.
Заранее спасибо, для большей ясности или если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, и я сделаю все возможное, чтобы уточнить или предоставить больше информации.
РЕДАКТИРОВАТЬ: Это именно тот код, который я использовал для визуализации данных:
data = pd.read_excel("Scanlog.xlsx")
df = pd.DataFrame(data, columns=['Scan Type', 'Time'])
df['Time'] = pd.to_datetime(df['Time'], format="%H:%M:%S", errors="coerce")
df.groupby([df['Time']]).count().plot(style=".", figsize=(15, 4))
РЕДАКТИРОВАТЬ 2 - Решение для проблемы 1:
После некоторого исследования я обнаружил, что отсутствующей частью был dt.time:
df['Time'] = pd.to_datetime(df['Time'], format="%H:%M:%S", errors="coerce").dt.time
Теперь время представлено правильно.