python模块下载慢_使用python的pandas模块时,查找和修改dataFrame中的值速度非常慢,请问是什么原因,有什么好办法解决吗?...

最近在用pandas做一个机器学习的项目,训练集大概2G。我用的dataFrame来操作数据,对训练集做了一次groupby和mean的操作,速度还挺快的,但把得到的结果赋值给用户参数(也是一个dataframe表)的时候,速度缺特别慢,请问这是什么原因呢?

训练集大概有7000多万行,做groupby和mean操作大概十几分钟也就完成了,但赋值操作缺超级慢,每秒钟大概只能赋值50条左右,差距太大了。其中赋值语句大概是这样操作的:

dataframeA.loc[user,'']=dataframeB.loc[user,'']。两张dataFrame表都很大,都是百万级的,不知道是不是和量级较大有关,但千万级的训练集做groupby也没什么压力啊,而且这个机器学习项目,会经常使用和修改表中的参数,如果都这么慢的话,可能就无法正常使用了,哪位大神有什么好的解释或者建议吗?非常感谢了。部分代码如下,有什么细节没有说清楚的话可以问我,我再详细解释下。

def get_average_rating(self):

self.u = log_train['Result'].mean()

print 'u is ',self.u

i,j = 0,0

user_mean_rate = log_train.groupby('UserId').agg({'Result':np.mean})

item_mean_rate = log_train.groupby('ItemId').agg({'Result':np.mean})

#计算bias

print 'calc bias start'

start_time = time.time()

for user in train_users:

i += 1

if i%2000==0:

print '2000 used time',time.time()-start_time

start_time = time.time()

self.user_params.loc[user,'bias'] = user_mean_rate.loc[user,'Result']-self.u

for item in train_items:

self.item_params.loc[item,'bias'] = item_mean_rate.loc[item,'Result']-self.u

print 'bias total used time',time.time()-start_time

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值