pandas中日期与时间处理1、字符串转化为时间戳
2、时间戳转化为字符串
3、创建时间长度
4、获取时间相关信息
5、生成一个等差时间序列
6、时间序列处理
1、字符串转化为时间戳
pandas.to_datetime(arg, errors='raise', utc=None, format=None, unit=None)
# 参数解释
errors: 'raise' 无效的解析将引发异常
'coerce'无效解析将被设置为NaT
'ignore'无效解析将返回输入值
utc: 布尔值,返回utc即协调世界时
format: 字符串格式
unit: 默认值为'ns',精确到微妙,'s'为秒 xxxxxxxxxx # 参数解释errors: 'raise' 无效的解析将引发异常 'coerce'无效解析将被设置为NaT 'ignore'无效解析将返回输入值utc: 布尔值,返回utc即协调世界时format: 字符串格式unit: 默认值为'ns',精确到微妙,'s'为秒 import pandas as pd
其他方式
pd.Timestamp('20200505') # 等价于 pd.to_datetime('20200505')
2、时间戳转化为字符串
df.dt.strftime('%d%m%y %H:%M')
3、创建时间段
pd.Timedelta(days = 1)
参数:weeks, days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds
4、获取相关时间变量
df['month'] = df.dt.month
df['year'] = df.dt.year
df['hour'] = df.dt.hour
df['minute'] = df.dt.minute
# 查询表
year 年
month 月
day 日
hour 时
minute 分钟
second 秒
microsecond 微秒
nanosecond 纳秒
date 返回日期
time 返回时间
dayofyear 年序日
weekofyear 年序周
week 周
dayofweek 周中的第几天,Monday=0, Sunday=6
weekday 周中的第几天,Monday=0, Sunday=6
weekday_name 周中的星期几,ex: Friday
quarter 季度
days_in_month 一个月中有多少天
is_month_start 是否月初第一天
is_month_end 是否月末最后一天
is_quarter_start 是否季度的最开始
is_quarter_end 是否季度的最后一个
is_year_start 是否年初第一天
is_year_end 是否年末第一天
5、生成一个等差时间序列
rng = pd.date_range('1/1/2011', periods=72, freq='H')
#从End往前数20个工作日,从start往后数20个工作日
pd.bdate_range(end=end, periods=20)
pd.bdate_range(start=start, periods=20)
# 生成一个Series,并设置索引
ts = pd.Series(np.random.randn(len(rng)), index=rng)
# 重构时间索引,并指定填充方法
converted = ts.asfreq('45Min', method='pad')
6、时间序列处理
ts.shift(1)
ts.shift(5, freq=datetools.bday)
ts.shift(5, freq='BM')
ts.tshift(5, freq='D')