Подтвердить что ты не робот

Конвертировать Pandas Колонка в DateTime

У меня есть одно поле в pandas DataFrame, которое было импортировано как строковый формат. Это должна быть переменная datetime. Как преобразовать его в столбец datetime и затем фильтровать по дате.

Пример:

  • Имя DataFrame: raw_data​​strong >
  • Название столбца: Mycol
  • Значение Формат в столбце: '05SEP2014: 00: 00: 00.000'
4b9b3361

Ответ 1

Используйте функцию to_datetime, указав формат, соответствующий вашим данным.

raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')

Ответ 2

Вы можете использовать метод DataFrame .apply() для работы с значениями в Mycol:

>>> df = pd.DataFrame(['05SEP2014:00:00:00.000'],columns=['Mycol'])
>>> df
                    Mycol
0  05SEP2014:00:00:00.000
>>> import datetime as dt
>>> df['Mycol'] = df['Mycol'].apply(lambda x: 
                                    dt.datetime.strptime(x,'%d%b%Y:%H:%M:%S.%f'))
>>> df
       Mycol
0 2014-09-05

Ответ 3

Если у вас есть более одного столбца для преобразования, вы можете сделать следующее:

df[["col1", "col2", "col3"]] = df[["col1", "col2", "col3"]].apply(pd.to_datetime)

Ответ 4

raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], format='%d%b%Y:%H:%M:%S.%f')

работает, однако это приводит к предупреждению Python о Значение пытается быть установлено на копии среза из DataFrame. Вместо этого используйте .loc[row_indexer,col_indexer] = value

Я бы предположил, что это связано с некоторой индексацией цепочек.

Ответ 5

Используйте функцию pandas to_datetime, чтобы проанализировать столбец как DateTime. Кроме того, с помощью infer_datetime_format=True он автоматически определит формат и преобразует указанный столбец в DateTime.

import pandas as pd
raw_data['Mycol'] =  pd.to_datetime(raw_data['Mycol'], infer_datetime_format=True)

Ответ 6

import pandas as pd
df["MyCol"]=pd.to_datetime(df["MyCol"])