Найти правильный формат для pd.to_datetime - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь преобразовать строки в моем наборе данных ('2016-01-01 00:00:00') в метки времени, используя pd.to_datetime. Я пытаюсь:

pd.to_datetime(train["timestamp"],format='%Y/%m/%d %I:%M:%S')

но я получаю

time data '2016-01-01 00:00:00' does not match format '%Y/%m/%d %I:%M:%S' (match)

Как я могу это исправить?

Ответы [ 3 ]

3 голосов
/ 18 октября 2019

Если вы хотите, чтобы он был в указанном вами формате, например, %Y/%m/%d %I:%M:%S, сделайте это следующим образом.

Сначала преобразуйте вашу строку в формат даты и времени, используя to_datetime:

df['timestamp'] = pd.to_datetime(df['timestamp'])

Теперь, когда ваш столбец имеет формат даты и времени, преобразуйте его в следующий формат, используя strftime:

df['timestamp'] = df['timestamp'].dt.strftime('%Y/%m/%d %I:%M:%S')

Вывод:

             timestamp
0  2016/01/01 12:00:00
1  2016/01/01 12:00:00

Как указали другие,используйте %H вместо %I для 24-часового формата, например:

df['timestamp'] = df['timestamp'].dt.strftime('%Y/%m/%d %H:%M:%S')
1 голос
/ 18 октября 2019

Это потому, что ваш формат в вашем df отличается. Попробуйте следующее, используя -, также используйте %H для 24-часовых часов:

pd.to_datetime(train["timestamp"],format='%Y-%m-%d %H:%M:%S')
1 голос
/ 18 октября 2019

2 проблемы здесь:

  1. Используйте - вместо /
  2. %I для Hour 00-12, используйте %H для Hour 00-23
pd.to_datetime(train["timestamp"],format='%Y-%m-%d %H:%M:%S')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...