Я пытаюсь скопировать столбец меток времени в кадре данных.Метки времени имеют формат 0:00:00, и я думаю, что они являются строками.Я попытался использовать uber.dtypes()
, но он продолжает выдавать ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-b4120eada070> in <module>()
----> 1 uber.dtypes()
TypeError: 'Series' object is not callable
изображение кадра данных для справки
uber["Time"].head().to_dict()
возвращает следующее:
{0: '0:11:00', 1: '0:17:00', 2: '0:21:00', 3: '0:28:00', 4: '0:33:00'}
Когда я использую эти корзины и метки:
bins = np.arange(0, 25, 1)
labels = [
"0:00-1:00",
"1:01-2:00",
"2:01-3:00",
"3:01-4:00",
"4:01-5:00",
"5:01-6:00",
"6:01-7:00",
"7:01-8:00",
"8:01-9:00",
"9:01-10:00",
"10:01-11:00",
"11:01-12:00",
"12:01-13:00",
"13:01-14:00",
"14:01-15:00",
"15:01-16:00",
"16:01-17:00",
"17:01-18:00",
"18:01-19:00",
"19:01-20:00",
"20:01-21:00",
"21:01-22:00",
"22:01-23:00",
"23:01-24:00"
]
uber["Hour"] = pd.cut(uber["Time"], bins, labels = labels)
Я получаю следующую ошибку:
TypeError: '<' not supported between instances of 'int' and 'str'
Если я изменю корзины на:
bins = str(np.arange(0, 25, 1)
Я получаю эту ошибку:
AxisError: axis -1 is out of bounds for array of dimension 0
Я понимаю, что, вероятно, смогу преобразовать их в секунды и использовать pd.to_numeric (), чтобы преобразовать столбец в целые числа, чтобы их можно было объединить, но я вынулвокруг документации и до сих пор неясно, как именно это сделать, используя дату и время (я мог бы сделать это долго и умножить на секунды и минуты).
1) Как я могу преобразовать эти метки времени в секунды, используяdatetime или time?
2) Есть ли способ скопировать их без преобразования меток времени в секунды?
Я также пытался преобразовать значения в uber ["Time"] в datetime.timeобъекты и вставка их в новый столбец ["Time Object"] перед binning:
for i in range(len(uber["Time"])):
uber.loc[i, "Time Object"] = datetime.datetime.strptime(uber.loc[i, "Time"], "%H:%M:%S").time()
Если я попытаюсь выполнить бин с использованием столбца [«Объект времени»]:
uber["Hour"] = pd.cut(uber["Time Object"], bins = 24, labels = labels)
Затем я получу эту ошибку:
TypeError: '<=' not supported between instances of 'datetime.time' and 'str'
Если я пытаюсь выполнить бин с использованием часа в столбце [«Объект времени»]:
uber ["Час"] = pd.cut (uber ["Объект времени"]. Час, контейнеры = 24, метки= метки)
Я получаю эту ошибку:
AttributeError: 'Series' object has no attribute 'hour'