python|jupyter|pandas|4.3转换与处理时间序列数据

4.3转换与处理时间序列数据

数据分析的分析对象:数值型、类别型、时间类型
在这里插入图片描述

转换字符串时间为标准时间
#前面
import pandas as pd
order1=pd.read_table('E:\大三上\张宇萌\实习任务安排(2019-9-26)/meal_order_info.csv',sep=',',encoding='gbk')

#转换
print('转换前订单信息表lock_time的类型为:',order1['lock_time'].dtypes)
order1['lock_time']=pd.to_datetime(order1['lock_time'])
print('转换后类型为',order1['lock_time'].dtypes)

在这里插入图片描述

Timestamp的最小时间和最大时间
print('最小时间',pd.Timestamp.min)
print('最大时间',pd.Timestamp.max)

在这里插入图片描述

时间字符串转换为Datetimeindex和Periodindex
#Datetimeindex
dateindex=pd.DatetimeIndex(order1['lock_time'])#注意大写
print('转换后类型为',type(dateindex))

#Periodindex
periodindex=pd.PeriodIndex(order1['lock_time'],freq='S')#注意大写
print('转换后类型为',type(periodindex))
#转化为Periodindex时,要通过frep参数指定时间间隔,
#常用的时间间隔: Y(年) M(月) D(日) H(小时) T(分钟) S(秒)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

提取时间序列数据信息

在这里插入图片描述

#提取Datetime数据中的时间序列

#年份
year1=[i.year for i in order1['lock_time']]
print('lock_time中年份的前5个数据',year1[1:5])
#月份
month1=[i.month for i in order1['lock_time']]
print('lock_time中月份的前5个数据',month1[1:5])
#日期
day1=[i.day for i in order1['lock_time']]
print('lock_time中日期的前5个数据',day1[1:5])
#星期
weekday1=[i.weekday_name for i in order1['lock_time']]
print('lock_time中星期的前5个数据',weekday1[1:5])

在这里插入图片描述

#提取Dateindex和Periodindex中的数据

print('dateindex中星期前5个数据',dateindex.weekday_name[:5])
print('periodindex中星期标号前5个数据',periodindex.weekday[:5])
#注意,periodindex比Dateindex少了weekday_name属性,
#所以不能直接提取星期名称,要先提取标号,再赋值

在这里插入图片描述

加减时间

在这里插入图片描述

#加运算
time1=order1['lock_time']+pd.Timedelta(days=1)
print('初始前5行数据:',order1['lock_time'][:5])
print('结果前5行数据:',time1[:5])

#减运算
time2=order1['lock_time']-pd.to_datetime('2017-1-1')
print('lock_time减去2017年1月1日0点0时0分(前5行)',time2[:5])

在这里插入图片描述

任务实现
import pandas as pd
order1=pd.read_table('E:\大三上\张宇萌\实习任务安排(2019-9-26)/meal_order_info.csv',sep=',',encoding='gbk')

#订单信息表时间数据转换
print('use_start_time,lock_time类型:',order1[['use_start_time','lock_time']].dtypes)
order1['use_start_time']=pd.to_datetime(order1['use_start_time'])
order1['lock_time']=pd.to_datetime(order1['lock_time'])
print('use_start_time,lock_time类型:',order1[['use_start_time','lock_time']].dtypes)

#订单信息表时间信息提取
year1=[i.year for i in order1['lock_time']]
month1=[i.month for i in order1['lock_time']]
day1=[i.day for i in order1['lock_time']]
week=[i.week for i in order1['lock_time']]#周信息
weekday=[i.weekday() for i in order1['lock_time']]#星期信息
weekname=[i.weekday_name for i in order1['lock_time']]#星期名称
print('lock_time中年份的前5个数据',year1[1:5])
print('lock_time中月份的前5个数据',month1[1:5])
print('lock_time中日期的前5个数据',day1[1:5])
print('lock_time中周的前5个数据',week[1:5])
print('lock_time中星期名称的前5个数据',weekname[1:5])
print('lock_time中星期的前5个数据',weekday[1:5])

#查看订单信息表时间统计信息
timemin=order1['lock_time'].min()
timemax=order1['lock_time'].max()
print('订单最早时间',timemin)
print('订单最晚时间',timemax)
print('订单持续的时间',timemax-timemin)
checktime=order1['lock_time']-order1['use_start_time']
print('平均点餐时间',checktime.mean())
print('最短点餐时间',checktime.min())
print('最长点餐时间',checktime.max())

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值