通过群体迭代需要很长时间才能完成

时间:2015-12-15 02:54:08

标签: python pandas group-by timeit

让我先告诉你我的代码

df = pd.read_csv('ConcatOwned1_900.csv', sep='\t')
tp = pd.read_csv('AppCrawlerGenres.csv', sep='\t')

df = df.set_index(['UserID','appid']) 

kalipsiG = []
i = 0
print time.ctime()

for user, new_df in df.groupby(level=0):

    list_apps=new_df.index.get_level_values('appid').unique()
    crawl = tp[tp['appid'].isin(list_apps)].sum()

    kalipsi = (crawl != 0).sum() - 1 # (-1) epeidi exei kai to appid mesa

    kalipsiG.append(kalipsi)
    if (i % 1000) == 0 :
        print '\n',time.ctime()
        print i,user,'\n',new_df

    i += 1

好吧,我有一个非常大的文件(df),包含每个用户appids的用户。有关appid的信息可以在另一个文件(tp)找到。

我已经实现了创建kalipsiG变量的目标,该变量计算某些变量的非数值。

唯一的问题是,每1000个用户需要大约3秒的时间来计算并且我有aprox。 220.000用户。

快速数学:大约需要11分钟才有更快的方法吗?

0 个答案:

没有答案