pandas如何去掉时间列的小时只保留日期

最近无聊,想玩玩数据挖掘,就拿天池的天池新人实战赛之[离线赛]练练手。https://tianchi.aliyun.com/getStart/information.htm?spm=5176.100067.5678.2.2b282b2bAOqNmy&raceId=231522 

其中在处理数据时,我需要以日期为索引,比如将前6天的数据作为训练集,第7天的数据作为预测集。下图是阿里给的数据。

由于我们需要按天来统计数据,所以暂时认为几点购买的这个信息没什么用,我想去掉。要怎么去掉呢?

我们可以看到,时间列是object类型,先对其进行转换。

然后这里有几种方法去除时间:

上图的第二句话是设置时间为索引。

第二种方法:

all_user['time'] = pd.to_datetime(all_user['time']).dt.date 
这种方法很慢,请不要轻易尝试。
或者:
all_user['time'] = pd.to_datetime(all_user['time']).dt.floor('d') 
具体可以参考:https://stackoverflow.com/questions/16176996/keep-only-date-part-when-using-pandas-to-datetime。
然后我们就可以分割数据为训练集和预测集了。
train_user = all_user['2014-11-22':'2014-11-27']
train_user_predict = all_user['2014-11-28']
valid_user = all_user['2014-11-29':'2014-12-04']
valid_user_predict = all_user['2014-12-05']
test_user = all_user['2014-12-13':'2014-12-18']
test_user_predict = all_user['2014-12-19']
posted @ 2018-05-06 22:38  粗面鱼丸  阅读(21504)  评论(1编辑  收藏  举报