我有一个形式为:
的pandas矩阵dfuser_id time url
4 20140502 'w.lejournal.fr/actualite/politique/sarkozy-terminator_1557749.html',
7 20140307 'w.lejournal.fr/palmares/palmares-immobilier/'
10 20140604 'w.lejournal.fr/actualite/societe/adeline-hazan-devient-la-nouvelle-controleuse-des-lieux-de-privation-de-liberte_1558176.html'
etc...
我想使用groupby函数按用户分组,然后对每个用户的网址中出现的单词进行一些统计,例如,获取用户网址中世界'realite'的次数。
目前,我的代码是:
def my_stat_function(temp_set):
res = 0
for (u,t) in temp_set:
if 'actualite' in u and t > 20140101:
res += 1
return res
group_user = df.groupby('user_id')
output_list = []
for (i,group) in group_user:
dfg = pandas.DataFrame(group)
temp_set = [tuple(x) for x in dfg[['url','time']].values]
temp_var = my_stat_function(temp_set)
output_list.append([i]+[temp_var])
outputDf = pandas.DataFrame(data = output_list, columns = ['user_id','stat'])
我的问题是:我可以避免逐组迭代以应用my_stat_function,并且存在更快的东西,可能应用函数apply?我真的想要更多“熊猫似的”和更快的东西。
感谢您的帮助。