Python datetime.strptime [0-23] против [1-24]

В настоящее время я работаю с datetime.strptime. Мой входной файл имеет формат даты в часах как [1-24]. Вот небольшой пример:

2015-05-10 21:00,1.209,1.239
2015-05-10 22:00,1.148,1.174
2015-05-10 23:00,1.093,1.117
2015-05-10 24:00,1.044,1.065

Насколько я понял из datetime.strptime работает только с форматом [0-23]. На самом деле вариант: %H как десятичное число, дополненное нулями, или %-H как десятичное число.

Я прав? в таком случае, как можно работать с моими данными?

Это мой код:

import pandas as pd
from datetime import datetime

df = pd.read_csv(fname2read,delimiter=',',header=0,parse_dates=True,\
                  na_values=-999)

df['datatime'] = df['datatime'].map(lambda x: datetime.strptime(str(x),\
                 "%Y-%m-%d %H:%M"))

Действительно, действительно спасибо, Диедро

Где "1-24" "формат"...? Как вы представляете время одна минута после полуночи?

deceze 13.03.2019 14:22

Я не уверен, что вы спрашиваете. Можете ли вы привести пример вашего кода?

NoSplitSherlock 13.03.2019 14:23

@deceze 24:00 дня 0 — это синоним 00:00 дня 1. Не часто, но и не невозможно. Это аналог 12-часовой системы, где время от полуночи начинается с 00:00 до 00:59 (а не с 0:00 до 00:59). Это ISO 8601.

BoarGules 13.03.2019 14:26

@BoarGules Хорошо, но тогда это «0-24», а не «1-24».

deceze 13.03.2019 14:36

Вы можете просто использовать метод str.replace, чтобы заменить '24:' на '00:', чтобы строка стала разборчивой с помощью strptime.

blhsing 13.03.2019 14:37

@blhsing Но проанализированная дата будет на 1 выходной.

deceze 13.03.2019 14:37

@blhsing Нет, вы не можете, это приводит к 24-часовой ошибке.

BoarGules 13.03.2019 14:38

@deceze Если в вашем времени нет минут (а у ОП нет, по крайней мере, согласно его вопросу), то нет времени с нулевым часом.

BoarGules 13.03.2019 14:38

@BoarGules Неважно. Тогда лучше всего использовать strptime для анализа части даты строки в объект datetime и использовать регулярное выражение для извлечения части строки времени и создания объекта timedelta с часами, минутами и секундами, а также добавить объект timedelta в datetime объект.

blhsing 13.03.2019 14:41

@deceze В качестве альтернативы и проще замените '24:' на '00:', проверьте, есть ли '00:' в результирующей строке, и если есть, добавьте timedelta(day=1) к объекту datetime, созданному strptime.

blhsing 13.03.2019 14:44

А теперь мы все просто плюемся, основываясь на малой информации или ее полном отсутствии…

deceze 13.03.2019 14:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
11
205
0

Другие вопросы по теме