python pandas按组应用功能组

时间:2014-07-29 14:11:44

标签: python function pandas apply

我有一个形式为:

的pandas矩阵df
user_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?我真的想要更多“熊猫似的”和更快的东西。

感谢您的帮助。

0 个答案:

没有答案