阿里音乐流行趋势预测大赛—浅尝辄止(二)
2016-07-28 14:23
387 查看
本篇博文接上一篇博文浅尝辄止(一)的内容,这里主要介绍竞赛给的数据中时间戳的处理方法,时间戳是形如“1426406400”形式的一组时间计数,我们需要将其转化为正常的时分秒的形式,然后再将转化后的结果写入到csv文件当中去,最后我们得到的转换前的和转换后的文件内容形式如下:
![](https://img-blog.csdn.net/20160818232816800?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
转换后的:
![](https://img-blog.csdn.net/20160818232905863?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
从左到右的数据依次为:用户ID,歌曲ID,时间点,用户操作行为,日期,月,日,时;观察发现我们这里做的主要工作只是将Unix时间戳转化成日常形式,然后将月,日,时,截取出来,将这些数据分别对应的重新写入到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 dt def 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: # break months.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)]=T i=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=0 mywriter=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+1 end=time.clock() print 'running time is: %.3f'%(end-start)
相关文章推荐
- php 创建以UNIX时间戳命名的文件夹(示例代码)
- 深入Unix时间戳与C# DateTime时间类型互换的详解
- JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现
- php实现兼容2038年后Unix时间戳转换函数
- PHP数学运算与数据处理实例分析
- 『Data Science』R语言学习笔记,基础语法
- PHP数学运算与数据处理实例分析
- jQuery常用数据处理方法小结
- 学习机器学习 数据处理时 找到的这些链接 可以在上面下载到开源的研究数据数据
- sql处理数据保留小数点后两位
- 基于Python实现excel表格读写
- Asp.net mvc 提交列表(二)
- Asp.net mvc 提交列表(三)
- 均方根信息滤波(SRIF)测试(一)
- GMT&UTC,UNIX时间戳,时区
- 数据处理
- 海量数据处理:十道面试题与十个海量数据处理方法总结
- 工业企业数据库处理——2.匹配样本
- 工业企业数据库处理代码完整版本——2.匹配样本
- python对csv文件的处理