Как преобразовать String в Numpy Datetime64 из кадра данных - PullRequest
0 голосов
/ 15 мая 2019

Я имею дело с DataFrame, который содержит столбец времени, например "чч: мм: сс", и мне нужно преобразовать эти значения в тип NumPy datetime64.

import pandas as pd
data = [dict(voie="V3", Start="06:10", End='06:20'),
            dict(voie="V5", Start='06:26', End='06:29'),
            dict(voie="V3", Start='06:20', End='06:30'),
            dict(voie="V5", Start='06:32', End='06:35')]
df = pd.DataFrame(data)
#df = df['Start'].to-datetime64()

Мне нужно преобразовать столбец Start и End из типа string в datetime64

1 Ответ

0 голосов
/ 15 мая 2019

Просто используйте pandas.to_datetime для каждого столбца.Например:

df.End = pd.to_datetime(df.End)
df.End
0   2019-05-15 06:20:00
1   2019-05-15 06:29:00
2   2019-05-15 06:30:00
3   2019-05-15 06:35:00
Name: End, dtype: datetime64[ns]

Вы также можете использовать метод pandas.DataFrame.astype DataFrame.

df.End = df.End.astype('datetime64[ns]')
df.End
0   2019-05-15 06:20:00
1   2019-05-15 06:29:00
2   2019-05-15 06:30:00
3   2019-05-15 06:35:00
Name: End, dtype: datetime64[ns]

Относительно pd.Timestamp и np.datetime64

Это сложные отношения.Атрибут .values серии будет массивом типа np.datetime64, а тип отдельной записи будет pd.Timestamp.Насколько я знаю, вы ничего не можете сделать с np.datetime64, что вы не можете сделать с pd.Timestamp.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1022* Преобразование между datetime, Timestamp и datetime64 , которое может помочь.В глубине кода pd.to_datetime вы увидите, что на самом деле, когда передано pd.Series, каждая запись преобразуется в np.datetime64.До тех пор, пока вы не получите доступ к элементу серии, он будет преобразован в pd.Timestamp (см. pandas._libs.index.get_value_at ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...