阿里音乐流行趋势预测大赛—浅尝辄止(二)

编程入门 行业动态 更新时间:2024-10-09 17:28:16

阿里音乐流行趋势预测大赛—<a href=https://www.elefans.com/category/jswz/34/1765616.html style=浅尝辄止(二)"/>

阿里音乐流行趋势预测大赛—浅尝辄止(二)

    本篇博文接上一篇博文浅尝辄止(一)的内容,这里主要介绍竞赛给的数据中时间戳的处理方法,时间戳是形如“1426406400”形式的一组时间计数,我们需要将其转化为正常的时分秒的形式,然后再将转化后的结果写入到csv文件当中去,最后我们得到的转换前的和转换后的文件内容形式如下:


转换后的:


从左到右的数据依次为:用户ID,歌曲ID,时间点,用户操作行为,日期,月,日,时;观察发现我们这里做的主要工作只是将Unix时间戳转化成日常形式,然后将月,日,时,截取出来,将这些数据分别对应的重新写入到csv文件当中。下面给出具体的程序,程序做了简单标注,欢迎指正!

# -*- coding: utf-8 -*-import time
import pandas as pd 
import numpy
import csv
start=time.clock()def timestamp_datetime(value):format = '%Y-%m-%d %H:%M:%S'         #'%Y-%m-%d %H:%M:%S'value = time.localtime(value)dt = time.strftime(format, value)return dtdef timestamp_datetime_month(value):format = '%m'         value = time.localtime(value)dtm = time.strftime(format, value)return dtm
def timestamp_datetime_day(value):format = '%d'         value = time.localtime(value)dtd = time.strftime(format, value)return dtd
def timestamp_datetime_hour(value):format = '%H'         value = time.localtime(value)dth = time.strftime(format, value)return dth#t=eval('1426406400')
#T=timestamp_datetime(t)actions=pd.read_csv('E:\\Tianchi\\Music\\mars_tianchi_user_actions.csv',nrows=1000000,header=None)date=actions.loc[:,2]
user=actions.loc[:,0]
song=actions.loc[:,1]
act=actions.loc[:,3]
day=actions.loc[:,4]     #数据被切分出来
i=0
dt=numpy.mat(date)       #或许用list列表更方便
dt=numpy.transpose(dt)months=[]
days=[]
hours=[]
while i<1000000:      #5652232#if date[i:(i+1)]=NaN:#   breakmonths.append(timestamp_datetime_month(float(dt[i,0])))days.append(timestamp_datetime_day(float(dt[i,0])))hours.append(timestamp_datetime_hour(float(dt[i,0])))        #三个大列表T=timestamp_datetime(float(dt[i,0]))       #时间戳变换T=str(T)date.loc[i:(i+1)]=Ti=i+1
#print date
date=list(date)
user=list(user)
song=list(song)
act=list(act)
day=list(day)with open('E:\\Tianchi\\Music\\test.csv','wb') as myfile:i=0mywriter=csv.writer(myfile)   #实例化为mywriter while i<1000000:mywriter.writerow([user[i],song[i],date[i],act[i],day[i],months[i],days[i],hours[i]])i=i+1end=time.clock()
print 'running time is: %.3f'%(end-start)




更多推荐

阿里音乐流行趋势预测大赛—浅尝辄止(二)

本文发布于:2024-02-19 19:07:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765433.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:浅尝辄止   阿里   流行趋势   大赛   音乐

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!