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']


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM