преобразовать родовую c дату в дату и время в python (pandas) - PullRequest
1 голос
/ 21 марта 2020

Добрый день,

У меня огромный набор данных, в котором информация о времени хранится в виде float64 (или целого числа) в одном столбце кадра данных в формате 'ddmmyyyy' (например, 20 января 2020 года будет с плавающей точкой) 20012020,0). Мне нужно преобразовать его в дату и время, например, «дд-мм-гггг». Я видел функцию to_datetime, но мне не удалось получить то, что я хочу. Кто-нибудь знает, как это сделать?

Массимо

1 Ответ

0 голосов
/ 21 марта 2020

Вы можете попробовать преобразовать в строку и после этого, в формат даты, вы хотите, как это:

# The first step is to change the type of the column, 
# in order to get rid of the .0 we will change first to int and then to
# string

df["date"] = df["date"].astype(int)
df["date"] = df["date"].astype(str)

for i, row in df.iterrows():
    # In case that the date format is similar to 20012020
    x = str(df["date"].iloc[i])
    if len(x) == 8:
        df.at[i,'date'] = "{}-{}-{}".format(x[:2], x[2:4], x[4:])
    # In case that the format is similar to 1012020
    else:
        df.at[i,'date'] = "0{}-{}-{}".format(x[0], x[1:3], x[3:])

Редактировать:

  • Как вы сказал, что это решение работает, только если месяц всегда состоит из 2 цифр.
  • Добавлена ​​пропущенная переменная в l oop
  • Добавлены типы изменений столбца перед вводом l oop.

Дайте мне знать, если это поможет!

...