Мне нужна помощь в очистке одного столбца моего информационного кадра, который содержит дату или время в зависимости от строки. Я хочу вытащить дату и перечислить ее в отдельный столбец для каждой строки метки времени. Как мне использовать iterrows, datetime и условный оператор для этого?
Я делаю персональный проект, чтобы вытащить графики приливов в кадр данных панд. Мне удалось успешно очистить данные, но результирующий фрейм данных немного дезорганизован, и я пытаюсь его очистить. Моя проблема заключается в том, что в первом столбце информационного кадра указана текущая дата, а в последующих строках указан ряд раз для этой даты, соответствующих приливу, отливу и т. Д. Я хочу вытащить дату из этого столбца и создать новый, где он указан для каждой отметки времени, и я хочу использовать условное выражение, чтобы проверить, находится ли строка в формате даты или в формате времени.
Я знаю, что могу использовать iterrows, чтобы проходить строки по очереди, и я почти уверен, что должен каким-то образом использовать datetime.time.hour и datetime.time.minute, но мне неясно, как это сделать.
Простая версия этой проблемы была бы, если бы у вас был один столбец кадра данных, разобранный в массив, который чередовал значения времени и даты:
array1 = ['1 January', '12:00 AM', '2 January, '1:00AM', etc.]
как бы вы удалили даты и поместили их в отдельный столбец? (или массив в этом случае.) Я должен добавить, что у вас будет другой массив, который содержит значения времени для соответствующих записей в массиве1, которые имеют даты и не имеют значений для записей времени:
array2 = ['12 PM', NaN, '1 PM', Nan, etc.]
для пояснения Я использую BeautifulSoup для анализа и очистки HTML, поэтому я почти уверен, что все значения являются строками. Кроме того, фактический фрейм данных не обязательно должен иметь одинаковый интервал между значениями даты, т.е. они не чередуются, поэтому я не могу просто удалить все остальные значения .