Я читал файл Excel, который имеет следующую структуру:панд - Используйте datetime.time объектов как DTYPE
A B
2015-09-05 15:05:32
2015-09-05 19:05:02
Я читаю этот файл, используя
df = pd.ExcelFile(filename).parse(..)
Когда я смотрю на dtype
, этого DataFrame, я могу видеть, что даты обрабатываются должным образом как datetime64
объекты, но времена не являются:
>>> df.dtypes
A datetime64[ns]
B object
Что странно, что, когда я смотрю на содержании B
, я могу видеть, что все они datetime.time
объектов
[s for s in main_df['B'].tolist() if type(s) is not datetime.time]
# There are no values that are *not* datetime.time objects
Я хотел бы преобразовать эту B
колонки к чему-то, что я могу использовать более легко , Например, я хотел бы использовать MultiIndex
с первым днем, а затем время (чтобы я мог группировать и группировать). Или я хотел бы присоединиться к двум, чтобы у меня была одна колонка, полная дата.
Но в этот момент я застрял. Я попытался преобразовать их в datetime
:
main_df['B'] = main_df['B'].astype('datetime64')
ValueError: Could not convert object to NumPy datetime
Есть идеи?
Это частично работает, когда dtypes оба объекта , но если один из dtypes - 'datetime64', он дает ошибку. Если вы добавите это между двумя строками, например: 'df ['A'] = df ['A']. Astype ('datetime64')' – user1496984
Я думаю, вы могли бы указать свой dtype как строку при чтении или используйте дату и время, как в отредактированном ответе. –