Построение DataFrame с проблемами объекта datetime.time - PullRequest
0 голосов
/ 28 июня 2018

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

Моя цель:

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

Выпуск 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

Теперь время представлено правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...