我们的目标是把Netflix数据集的格式转换成:用户id、物品id、评分、时间戳格式。在开始转换之前,先下载Netflix数据集:netflix-prize-data。点击“Download”,下载文件archive.zip并解压。

我们只选用combined_data的4个文件此时文件目录如下:

接下来开始转换:
1、先导入需要用到的包

from datetime import datetime
import pandas as pd
import numpy as np

2、读入combined_data_1-4的数据

df1 = pd.read_csv('./combined_data_1.txt', header = None, names = ['user_id', 'rating', 'timestamp'], usecols=[0,1,2])  # 读入combined_data_1
# df2 = pd.read_csv('./combined_data_2.txt', header = None, names = ['user_id', 'rating', 'timestamp'], usecols=[0,1,2])  # 读入combined_data_2
# df3 = pd.read_csv('./combined_data_3.txt', header = None, names = ['user_id', 'rating', 'timestamp'], usecols=[0,1,2])  # 读入combined_data_3
# df4 = pd.read_csv('./combined_data_4.txt', header = None, names = ['user_id', 'rating', 'timestamp'], usecols=[0,1,2])  # 读入combined_data_4df1['rating'] = df1['rating'].astype(float)
# df2['rating'] = df2['rating'].astype(float)
# df3['rating'] = df3['rating'].astype(float)
# df4['rating'] = df4['rating'].astype(float)print('Dataset 1 shape: {}'.format(df1.shape))
# print('Dataset 2 shape: {}'.format(df2.shape))
# print('Dataset 3 shape: {}'.format(df3.shape))
# print('Dataset 4 shape: {}'.format(df4.shape))
print('-Dataset examples-')
print(df1.iloc[::5000000, :])

输出:

Dataset 1 shape: (24058263, 3)
-Dataset examples-user_id  rating   timestamp
0              1:     NaN         NaN
5000000   2560324     4.0  2005-12-06
10000000  2271935     2.0  2005-04-11
15000000  1921803     2.0  2005-01-31
20000000  1933327     3.0  2004-11-10

3、合成4个数据集并重构索引

df = df1
# df.append(df2)
# df.append(df3)
# df.append(df4)
df.index = np.arange(0, len(df))
print('Full dataset shape: {}'.format(df.shape))
print('-Dataset examples-')
print(df.iloc[::5000000, :])

输出:

Full dataset shape: (24058263, 3)
-Dataset examples-user_id  rating   timestamp
0              1:     NaN         NaN
5000000   2560324     4.0  2005-12-06
10000000  2271935     2.0  2005-04-11
15000000  1921803     2.0  2005-01-31
20000000  1933327     3.0  2004-11-10

4、数据清洗,去除rating为0的数据行

df_nan = pd.DataFrame(pd.isnull(df.rating))
df_nan = df_nan[df_nan['rating'] == True]
df_nan = df_nan.reset_index()item_np = []
item_id = 1for i,j in zip(df_nan['index'][1:],df_nan['index'][:-1]):# 使用numpytemp = np.full((1,i-j-1), item_id)item_np = np.append(item_np, temp)item_id += 1# 考虑最后一条记录和其长度
# 使用numpy
last_record = np.full((1,len(df) - df_nan.iloc[-1, 0] - 1),item_id)
item_np = np.append(item_np, last_record)
print('Item numpy: {}'.format(item_np))
print('Length: {}'.format(len(item_np)))

输出:

Item numpy: [1.000e+00 1.000e+00 1.000e+00 ... 4.499e+03 4.499e+03 4.499e+03]
Length: 24053764

5、将物品(电影)id加入dataframe

def time2stamp(cmnttime): # 时间转时间戳函数cmnttime = datetime.strptime(cmnttime,'%Y-%m-%d')stamp = int(datetime.timestamp(cmnttime))return stampdf = df[pd.notnull(df['rating'])].copy()
df['item_id'] = item_np.astype(int)
df['user_id'] = df['user_id'].astype(int)
df = df.loc[:,['user_id', 'item_id', 'rating', 'timestamp']] # 交换两列位置
df['timestamp'] = df['timestamp'].astype(str).apply(time2stamp) # 时间转成时间戳
print('-Dataset examples-')
print(df.iloc[::5000000, :])

输出:

-Dataset examples-user_id  item_id  rating   timestamp
1         1488844        1     3.0  1125936000
5000996    501954      996     2.0  1093449600
10001962   404654     1962     5.0  1125244800
15002876   886608     2876     2.0  1127059200
20003825  1193835     3825     2.0  1060704000

6、保存dataframe

# df.sort_values(by=["user_id", "timestamp"], ascending=[True, True]) # 先按用户id排序,然后按时间戳排序
df.to_csv('./ratings.dat', sep=',', index=0, header=0)

完成

如何把Netflix数据集转换成Movielens格式?相关推荐

  1. SSD学习系列(二)LMDB概念以及将VOC数据集转换成LMDB格式

    LMDB概念 接上一篇,将SSDa caffen框架代码编译通过后y,接下来就可以利用其脚本将标注好的VOC格式数据集转换成LMDB格式,以便开始SSD模型训练. LMDB是Lightning Mem ...

  2. 数据集转换成LMDB格式

    文章来源https://www.cnblogs.com/dengshunge/p/10841108.html略加修改和补充. 介绍两种LMDB格式数据集的生成,一种是自己的数据集,一种是下载wider ...

  3. INRIA数据集转换成VOC格式

    背景 下面的代码是将INRIA数据集转换成VOC格式.图片是614张. 其中,使用OinginImage文件夹里的Train中Pos和Annotations作为训练,利用Test里的Pos作为测试. ...

  4. TT100K数据集转换成coco格式,并重新划分

    TT100K数据集转换成coco格式,并重新划分 统计每个类别 import os import jsonos.makedirs('annotations',exist_ok=True) #存放数据的 ...

  5. DAGM2007数据集转换成VOC格式

    DAGM2007数据集-to-缺陷数据集VOC格式 DAGM2007数据集下载 数据集简单介绍 转换代码 转换结果 DAGM2007数据集下载 链接: DAGM2007. 下载后把每一类的压缩包解压放 ...

  6. Caltech 数据集转换成VOC格式

    注意本人用pycharm 运行环境是python2.7.14 如果是python3 可能会存在错误 1. Seq文件转化成JEPG图像文件() 运行seq2jpg.py文件,输入.seq文件夹,输出到 ...

  7. python使用openCV加载图像、并将BGR格式转换成HSV格式、定义HSV格式中需要分离颜色的掩码(掩模)区间(mask)、并使用mask信息进行颜色分离、BGR格式的图像转化为RGB、并可视化

    python使用openCV加载图像.并将BGR格式转换成HSV格式.定义HSV格式中需要分离颜色的掩码(掩模)区间(mask).并使用mask信息进行颜色分离.将BGR格式的图像转化为RGB.可视化 ...

  8. python 怎么将数组转为列表_图片转换成pdf格式怎么操作?什么软件能将图片转为pdf?...

    伙伴们好,你们知道如何把图片转为pdf格式吗?前一阵子我参加了一个家居行业大会,在会议上拍摄了不少会议照片,包括主持人讲话.嘉宾出席.观众提问.产品推广等环节都拍摄了不同的角度.拍摄好后,需要传送给写 ...

  9. xsd文件转图片_图片转换成PDF格式怎么转?图片转换成PDF的软件哪个好?

    图片转换成PDF格式怎么转?经验丰富的设计师在完成图片格式的设计作品后都会将图片转成PDF格式文件,这样方便保存以及参加一些设计比赛.同时我们在保存大量图片的时候也可以将图片转换成PDF文件.但是还有 ...

  10. Win10系统如何将M4A音乐格式转换成MP3格式

    M4A和MP3一样也是一种音频格式,不一样的地方就是M4A的音质可能要比MP3好一些(因人而异).那么Win10系统如何将M4A音乐格式转换成MP3格式?其实我们可以利用音频格式转换器来转换M4A音乐 ...

最新文章

  1. 3d卷积神经网络_HSNets:使用卷积神经网络从2D轮廓预测3D人体模型
  2. “std::invoke”: 未找到匹配的重载函数
  3. 使用keepalived加lvs做负载均衡,访问后端的服务器,2分钟后超时,需要重新登录...
  4. F1.4大光圈专业相机-海鸥CF100
  5. delphi 画 带箭头的线
  6. Android 第一个OpenGL ES程序
  7. oracle函数 MIN([distinct|all]x)
  8. python函数方法里面用浅复制深复制_图解 Python 浅拷贝与深拷贝
  9. Linux 系统检测工具
  10. 《我也能做CTO之程序员职业规划》和《.NET软件设计新思维——像搭积木一样搭建软件》新书发布会 回顾
  11. 简单几何(线段相交) POJ 2653 Pick-up sticks
  12. 关于 LimitedConcurrencyLevelTaskScheduler 的疑惑
  13. 2018百度之星程序设计大赛初赛B——1002hex
  14. php ip 访问频繁,php刷新过于频繁自动加ip黑名单
  15. Python干货:破解40大机器学习面试题(包含初中高级)
  16. 【抽象代数】半群、子群、商群
  17. 最新搜狗收录提交工具分享
  18. Cloudera Manager5.14.3集群搭建
  19. property中ref、value、name的区别
  20. surfaceView全屏和退出全屏

热门文章

  1. 紧急 抢救mysql 数据库 恢复到指定时间点
  2. 单元格下拉全选快捷键_wps表格怎么选中单元格,快捷键是什么?
  3. 获取百度云盘真实下载链接(告别云盘客户端,全速下载)
  4. ios系统gps测试软件,GPS工具箱
  5. 【转】PLC编程软件: KW multiprog 和 codesys
  6. html js格式化,Js/html格式化在线工具
  7. TP-LINK无线上网短信Wifi认证配置流程
  8. sfm点云代码_SfM实现过程分析
  9. ES6阮一峰笔记部分对象新增方法、字符串的扩展和新增方法
  10. 分享一款挡字幕小工具,自带翻译功能,方便看剧学英语、日语