Я пытаюсь выполнить тест, чтобы определить, является ли тип данных «datetime.time» и, если это так, преобразовать его в «datetime.datetime». Мой фрагмент кода ниже. x_values - это серия, и каждый элемент этой серии - это «datetime.time».
...
x_values = x.loc[:, "processed_time"]
print(x_values.dtypes)
print(type(x_values.iloc[0]))
print(x_values)
if isinstance(x_values.iloc[0], datetime.time):
x_values = pd.to_datetime(x_values, format='%H:%M:%S')
...
Но при тестировании программа выдает следующие ошибки:
Traceback (most recent call last):
File "/Users/.../risk_calculations.py", line 282, in plot_risk
if isinstance(x_values.iloc[0], datetime.time):
TypeError: isinstance() arg 2 must be a type or tuple of types
object
<class 'datetime.time'>
1387 00:55:14
1388 10:02:01
1389 10:02:02
1390 10:02:02
1391 10:02:08
...
6417 14:36:49
6418 14:36:51
6419 15:24:52
6420 15:36:59
6422 16:21:03
Name: processed_time, Length: 3621, dtype: object
Этот стек ответ показался мне наиболее близким к решению моей проблемы, но я думаю, что правильно выполнил это предложение. Обратите внимание, что операторы печати показывают, что тип на самом деле является «классом datetime.time», как требуется (я думаю) «экземпляром», поэтому я не понимаю, почему возникли ошибки. Я знаю, что смогу заставить его работать, если я заменю оператор if на:
if 'datetime.time' in str(type(x_values.iloc[0])):
...
Но это кажется глупым. Есть ли более правильный тест для экземпляра datetime.time?