Обмен Str на Datetime в CSV (Python) - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть набор данных с именем aero. Я пытаюсь изменить строковые даты в данном столбце на datetime. Это формат строк:

In: aero['Date Local'].unique()
Out: array(['2000-01-01', '2000-01-02', '2000-01-03', ..., '2016-03-04',
   '2016-03-05', '2016-03-06'], dtype=object)

Так что поправьте меня, если я ошибаюсь,но это выглядит как изменяемый список строк, вот код, который я пробовал:

for stuff in aero['Date Local']:
aero['Date Local'][stuff] = datetime.datetime.strptime(stuff, "%Y-%m-%d")  

, который привел к ошибке:

ValueError: ['2' '0' '0' '0' '-' '0' '1' '-' '0' '1'] not contained in the index

Я пытался выяснить, что это значит, ноно безрезультатно.Может ли кто-нибудь помочь мне поменять эти строки на datetime?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы определяете новую переменную stuff каждую итерацию вашего цикла.Это не то, что вы хотите.Вы можете просто использовать astype для преобразования вашего массива в datetime:

A = np.array(['2000-01-01', '2000-01-02', '2000-01-03', '2016-03-04',
              '2016-03-05', '2016-03-06'], dtype=object)

res = A.astype('datetime64[ns]')

print(res)

array(['2000-01-01T00:00:00.000000000', '2000-01-02T00:00:00.000000000',
       '2000-01-03T00:00:00.000000000', '2016-03-04T00:00:00.000000000',
       '2016-03-05T00:00:00.000000000', '2016-03-06T00:00:00.000000000'],
      dtype='datetime64[ns]')

Эквивалентно, если у вас есть Панды, вы можете использовать pd.to_datetime:

import pandas as pd

res = pd.to_datetime(A).values  # .values extracts NumPy array

Поэтому, предполагая, что aero - это кадр данных Pandas, вы можете использовать:

aero['Date Local'] = pd.to_datetime(aero['Date Local'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...