机器学习手册学习笔记--处理日期和时间
仅供自己复习回顾使用,若有侵权可删除
字符串转为时间
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
筛选时间
- 布尔判断,适合简单操作
- 索引区间,适合复杂操作
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()
转载自:https://juejin.cn/post/7052121297634983967