pandas学习下-task4

五、问题与练习

【问题一】 如何对date_range进行批量加帧操作或对某一时间段加大时间戳密度?

通过 date_range(start, end, periods) 来对某时间段加大密度操作, 比如固定时间段, 增加periods参数取值

【问题二】 如何批量增加TimeStamp的精度?

pd.to_datetime(‘2020/1/1 00:00:00.00’) 最多至小数位后9位, 即纳秒.

【问题三】 对于超出处理时间的时间点,是否真的完全没有处理方法?
【问题四】 给定一组非连续的日期,怎么快速找出位于其最大日期和最小日期之间,且没有出现在该组日期中的日期?

日期排序, 就能看出哪里不连续了.缺了的就是那个要找的日期哈

习题1:
xt1 = pd.read_csv(‘data/time_series_one.csv’)
读入的时候不会 parse_dates=[‘日期’] 这招
于是
(a)
pd.to_datetime(xt1.loc[xt1[‘销售额’].idxmax(),‘日期’]).dayofweek
需要先转换成日期格式
(b)
xt1 = xt1[~xt1[‘日期’].isin(del_date)]
先剔除春节国庆以及五一,然后
xt1[‘日期’] = pd.to_datetime(xt1[‘日期’])
xt1.set_index(‘日期’)
xt1.resample(‘MS’).sum()
©
开始不知道使用xt1[‘日期’].dt.dayofweek
而列表没有dayofweek, 因此曲线救国
xt1[‘day’] = xt1[‘日期’].apply(lambda x:x.dayofweek)
xt1[xt1[‘day’] > 4].set_index(‘日期’).resample(‘QS’).sum()
(d)
(e)
两题太难了,直接膜拜答案, 不过答案在日期处理上似乎有点问题
df_temp = df[~df[‘日期’].dt.dayofweek.isin([5,6])].set_index(‘日期’).iloc[::-1]
比如问题求的是不含周一周六, 因此这里isin后面应该是,0,5

df_fri = df.shift(4)[df.shift(4)[‘日期’].dt.dayofweek1][‘销售额’]
df_mon = df.shift(-4)[df.shift(-4)[‘日期’].dt.dayofweek
5][‘销售额’]
还有这个地方, 周一与周五对换, 应该是 dayofweek == 0, dayofweek == 4 才对吧?

习题2:
xt2 = pd.read_csv(‘data/time_series_one.csv’,index_col=‘日期’,parse_dates=[‘日期’])
xt2[‘销售额’].rolling(window=50,min_periods=1).mean()
xt2[‘销售额’].rolling(window=50,min_periods=1).max()

(b)
时间不够, 讲一下思路, 用lag将销售额滞后1天, 然后对滞后一天的数据计算window = 5,periods = 1的均值, 再跟原始列比较
©
同样的, 思路, 只是先将数据里面的周末剔除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值