Преобразование столбца в pandas.datetime или временной ряд - PullRequest
0 голосов
/ 20 сентября 2018

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

ID      Date
1       {'day': 20, 'year': 2018, 'month':9}

Я пытаюсь изменить все в столбце Дата в формат временных рядов панд.Я пытался перебрать данные и изменить каждую запись, выполнив следующее, но получаю сообщение об ошибке о том, что форматы не совпадают.

for index, rows in iterrows:

    x = row['Date']
    pd.to_datetime(pd.Series(x), format = 'day': %d, 'year': %y, \
     'month': %m, dayfirst = True)

При запуске df.to_dict() это вывод:

{'ID': {0: '1'}, 'Date':{0: "{'day': 20, 'year': 2018, 'month': 9}"}}

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я смог решить это с помощью этого кода:

df['Date'] = pd.to_datetime(df['Date'],format="{'day': %d, 'year': %Y, 'month': %m}")

Там не должно было быть pd.Series.

0 голосов
/ 20 сентября 2018

Шаги

  1. Преобразование столбца словарей в список словарей
  2. Преобразование списка словарей в DataFrame
  3. Передача DataFrame в pd.to_datetime - Это классная часть!pd.to_datetime принимает DataFrame, если есть столбцы с соответствующими именами.Так случилось, что в ваших словарях есть правильные ключи, которые будут проанализированы как имена столбцов на шаге 2.
  4. Назначить 'Date'

df.assign(Date=pd.to_datetime(pd.DataFrame(df.Date.tolist())))

   ID       Date
0   1 2018-09-20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...