让我先告诉你我的代码
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分钟才有更快的方法吗?