运行此程序时出现以下错误:
df['initial_referrer'].apply(lambda x: value.split("utm_campaign=",1)[1] if 'utm_campaign' in value else np.nan for value in x.split('&'))
TypeError: 'generator' object is not callable
我不知道这个错误的含义以及如何修改我的这个来摆脱这个错误。我在这里读过一些类似的问题,但不知道我们的问题是什么。在
所以我在df['initial_referer']中有如下值:
^{pr2}$在这篇文章中,我想提取utm_campaign的值,即login-day1,这就是为什么我使用for循环和if语句,它需要花费大量的时间/天来处理20mil行。因此,我想使用生成器表达式或列表压缩来更快地处理它。在
首先将
apply
与正则函数一起使用是很有启发性的:注意表示列表理解的方括号。您需要将其转换为您的
^{pr2}$lambda
函数:但后者是不可读的。你最好写一个常规函数。在
注意
pd.Series.apply
是一个Python级别的循环。您可以改为使用map
,这样可能会提高性能:甚至是列表理解:
相关问题 更多 >
编程相关推荐