Дата по умолчанию 1970 в пандах

1

У меня проблемы с преобразованием даты в нужном формате.

У меня есть столбец, который выглядит так: 20130525, сохраненный как int64.

Я пытаюсь установить его как дату, но имею проблемы.

Я написал функцию, которая выглядит так:

def reformat_dates(df):
    df['column'] = pd.to_datetime(df['column'], format = "%Y-%m-%d")

    return df

но когда я выполняю функцию, я получаю столбец вроде этого:

1970-01-01 00:00:00.020130525

Что-то не так с моей функцией, которая делает ее по умолчанию таким образом? Я бы хотел, чтобы формат был

2013-05-25
  • 1
    Как работает df['column'] = pd.to_datetime(df['column'], format = "%Y%m%d") ?
  • 0
    Можете ли вы добавить пример данных к вопросу в плавающих?
Показать ещё 2 комментария
Теги:
pandas
datetime
date
datetime-format

3 ответа

2

Может ли это быть полезным?

df['column'] = pd.to_datetime(df['column'], format = "%Y%m%d").dt.strftime('%Y-%m-%d')
0

У меня такая же проблема. Для меня проблема заключалась в том, чтобы указать блок в секундах:

pandas.to_datetime(df_cpu2['time'], unit='s')

Кредиты здесь.

  • 1
    Не относится к исходному вопросу, но это решило мою проблему в тех случаях, когда отметка времени указана в секундах или миллисекундах
0

Мне кажется, нужно:

df = pd.DataFrame({'column':['20130525','20130525']})
df['column'] = pd.to_datetime(df['column'], format = "%Y%m%d")
print (df)
      column
0 2013-05-25
1 2013-05-25

Ещё вопросы

Сообщество Overcoder
Наверх
Меню