用pandas对gowalla数据集的切分

推荐系统的数据处理:(gowalla数据集)
原数据大约3万用户,4万交互物品
更改为大约取前2000用户,取前1万交互物品
主要目的是在练习算法时可以加快速度,到最后测试时在用大的数据集跑

原自带的数据集较大,在进行算法练习时,跑模型时间较长,为了平时研究节约时间,将其改小一点

进入正题:

先导入我们的数据集:(这里以训练集为例)

import numpy as np
import pandas as pd
import random
 
train_file = './train.txt'  #导入我们要处理的数据的路径
 
data=pd.read_csv(train_file,sep="/n",header=None)   #对于数据进行可视化

 可见原数据被分为仅有一列,接下来我们进行分列处理

df = data[0].str.split(' ',expand=True)     #以空格为间隔符,分为多列,进行维度扩张

经过操作后1列变为了812列 ,接下来选择前2000行

user = df[:2000]
user

 接下来就是删除大于某值的物品(这里选8000)

user.fillna(100000, inplace=True)  #先将空类型值填充

 

user_list = [list() for u in range(len(user))]        #先创建列表用于存储每个用户对应的物品
len(user_list)

 将大于8000的物品进行删除

for idx,row in user.iterrows(): 
    for i in range(0,user.shape[1]):
        #print(idx,row[i])
        if int(row[i])<8000:
             user_list[idx].append(row[i])
user_list

 读取我们删除后的数据

data_change=df=pd.DataFrame(user_list)   #用pandas读取列表
data_change

 

data_change.to_csv('test1.txt', sep='\t',index=False, header=None)   #导出为txt

 

 导出的数据空格较大不太美观,用文本中的替换处理一下

 

 同理对于test.txt进行相同处理

本文为简单的TXT数据处理,设计的都是基础知识,本人也在不断学习中,有更好的可以一起学习,特此记录自己的学习过程

注:因为是TXT文档,其实对原txt也可以进行直接删除处理,也是有效的方法,但是,还是应该懂得如何用代码进行操作处理,毕竟处理特别大的数据,还是比手动快点

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值