Преобразование даты не работает при создании нового столбца - PullRequest
0 голосов
/ 22 мая 2018

Что я пытаюсь сделать, так это конвертировать мою дату в datetime64 [D].В источнике. Некоторые даты относятся к типу объектов, а некоторые - к datetime64 [нс]. Я не спрашиваю, как сделать преобразование - Я знаю это.Но что-то происходит, когда я создаю новый столбец, и следующий код, кажется, не оказывает никакого влияния, а datetime64 [ns] не меняется.

 df2['date'].values.astype('datetime64[D]')

Это примерный фрейм данных:

d = {'date' :['2015-10-05 15:08:43', '2015-10-05 19:17:12', '2015-10-06 15:51:22', '2015-10-06 19:39:18', '2015-10-06 19:58:06', '2015-12-18 11:09:01'], 'name': ['john', 'tom', 'phill', 'nero', 'bob', 'rob']}
df2 = pd.DataFrame(data = d)

дата в df2 является типом объекта.Когда мы делаем следующее

df2['date'] = pd.to_datetime(df2['date'])

, дата становится dtype: datetime64 [нс].

Теперь следующий код работает и производит вывод datetime64 [D]

df2['date'].values.astype('datetime64[D]')

Нокогда я создаю новый столбец, он возвращается к

df2['date'] = df2['date'].values.astype('datetime64[D]')

Смотрите вывод здесь -

Имя: date, dtype: datetime64 [ns]

Итак, мой вопрос: почему он не работает, когда я создаю новый столбец?

Примечание: я знаю, что последняя строка выдает предупреждение.Поэтому я также попробовал метод ниже, но он не производит datetime64 [D]

newcol = df2['date'].values.astype('datetime64[D]')
df2.assign(date = newcol)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...