Справочник по машинному обучению. Учебные заметки — обработка дат и времени

Python

Это только для просмотра и просмотра самостоятельно, если есть какие-либо нарушения, его можно удалить.

Строка ко времени

import numpy as np
import pandas as pd
date_strings = np.array(['03-04-2005 11:35 PM','23-05-2010 12:01 AM','04-09-2009 09:09 PM'])
[pd.to_datetime(date, format='%d-%m-%Y %I:%M %p') for date in date_strings]

#errors="coerce", не будет генерировать исключение при возникновении ошибки в преобразовании (поведение по умолчанию), но установит значение, вызвавшее ошибку, равным NaT (также известное как отсутствующее значение)

Часовой пояс

import pandas as pd
#创建时就标注好
date = pd.Timestamp('2017-05-01 06:00:00', tz='Europe/London') 
#后加
date.tz_localize('Europe/London') 
#转变时区
date_in_london.tz_convert('Africa/Abidjan') 
#查看所有时区
from pytz import all_timezones
all_timezones 

Время показа

  1. Логическое суждение, подходящее для простых операций
  2. Диапазон индексов, подходящий для сложных операций
dataframe = dataframe.set_index(dataframe['date'])
dataframe.loc['2002-1-1 01:00:00':'2002-1-1 04:00:00']

Получить год, месяц, день и т. д.

.dt.year .dt.month .dt.day .dt.hour .dt.minute

Вычислить временной интервал между двумя функциями

pd.Series(delta.days for delta in (dataframe['Left'] - dataframe['Arrived']))

Кодировать дни недели

dates.dt.weekday_name #输出星期单词
dates.dt.weekday #输出数值,0代表星期一

отставать от значения на одну строку

dataframe["previous_days_stock_price"] = dataframe["stock_price"].shift(1)

Рассчитать скользящее среднее

dataframe.rolling(window=2).mean()

Примечание. Эта функция часто используется в реальной работе.

Обработка пропущенных значений

# 对缺失数据进行插值
dataframe.interpolate()  
#limit 来限制插值的数量
#limit_direction 来设置是从最后一个已知值进行向前插值,还是进行反向的操作
#method 参数来指定插值的方式

# 向前填充
dataframe.ffill()

# 向后填充
dataframe.bfill()