Questions tagged «apply»

带有参数列表的另一个函数。

5
熊猫根据其他列的值创建新列/逐行应用多列的功能
我想申请我的自定义函数(它使用的if-else梯)这六个列(ERI_Hispanic,ERI_AmerInd_AKNatv,ERI_Asian,ERI_Black_Afr.Amer,ERI_HI_PacIsl,ERI_White我的数据帧的每一行中)。 我尝试了与其他问题不同的方法,但似乎仍然找不到适合我问题的正确答案。关键在于,如果该人被视为西班牙裔,就不能被视为其他任何人。即使他们在另一个种族栏中的得分为“ 1”,他们仍然被视为西班牙裔,而不是两个或两个以上的种族。同样,如果所有ERI列的总和大于1,则将它们计为两个或多个种族,并且不能计为唯一的种族(西班牙裔除外)。希望这是有道理的。任何帮助将不胜感激。 这几乎就像在每行中进行一个for循环一样,如果每条记录都符合条件,则将它们添加到一个列表中并从原始列表中删除。 从下面的数据框中,我需要根据以下SQL规范来计算新列: ===================================================== ======= IF [ERI_Hispanic] = 1 THEN RETURN “Hispanic” ELSE IF SUM([ERI_AmerInd_AKNatv] + [ERI_Asian] + [ERI_Black_Afr.Amer] + [ERI_HI_PacIsl] + [ERI_White]) > 1 THEN RETURN “Two or More” ELSE IF [ERI_AmerInd_AKNatv] = 1 THEN RETURN “A/I AK Native” ELSE IF [ERI_Asian] = 1 THEN RETURN “Asian” …
316 python  pandas  numpy  apply 

6
为什么我的Pandas的“应用”功能不能引用多个列?[关闭]
关闭。这个问题不能重现或由错别字引起。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 去年关闭。 改善这个问题 当将多个列与以下数据框一起使用时,Pandas Apply函数存在一些问题 df = DataFrame ({'a' : np.random.randn(6), 'b' : ['foo', 'bar'] * 3, 'c' : np.random.randn(6)}) 和以下功能 def my_test(a, b): return a % b 当我尝试使用以下功能时: df['Value'] = df.apply(lambda row: my_test(row[a], row[c]), axis=1) 我收到错误消息: NameError: ("global name 'a' is not defined", u'occurred at index …

5
R的适用范围比句法糖更重要吗?
...关于执行时间和/或内存。 如果不正确,请使用代码段进行证明。请注意,通过矢量化进行的加速不计算在内。增速必须来自apply(tapply,sapply,...)本身。
152 r  apply 


4
python pandas:将带有参数的函数应用于一系列
我想将带有参数的函数应用于python pandas中的系列: x = my_series.apply(my_function, more_arguments_1) y = my_series.apply(my_function, more_arguments_2) ... 该文档描述了对apply方法的支持,但不接受任何参数。是否存在接受参数的其他方法?另外,我是否缺少一个简单的解决方法? 更新(2017年10月): 请注意,由于最初询问此问题以来,apply()已对熊猫进行了更新以处理位置和关键字参数,并且上面的文档链接现在反映了这一点,并说明了如何包括这两种类型的参数。
147 python  pandas  apply 

4
“ * apply”家庭真的没有向量化吗?
因此,我们习惯对每个R的新用户说“ apply不是矢量化的,请查看Patrick Burns R Inferno Circle 4 ”,其中说(我引用): 常见的反射是在apply系列中使用功能。这不是 向量化,而是循环隐藏。apply函数的定义中包含一个for循环。lapply函数掩盖了循环,但是执行时间往往近似等于显式的for循环。 的确,快速查看apply源代码可以发现循环: grep("for", capture.output(getAnywhere("apply")), value = TRUE) ## [1] " for (i in 1L:d2) {" " else for (i in 1L:d2) {" 到目前为止还可以,但是看看lapply还是vapply实际上可以看到完全不同的图片: lapply ## function (X, FUN, ...) ## { ## FUN <- match.fun(FUN) ## if (!is.vector(X) || is.object(X)) ## …

6
将函数应用于矩阵或数据框的每一行
假设我有一个2乘矩阵和一个将2向量作为其参数之一的函数。我想将函数应用于矩阵的每一行并获取一个n向量。如何在R中执行此操作? 例如,我想在三个点上计算2D标准正态分布的密度: bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2)) } out <- rbind(c(1, 2), c(3, 4), c(5, 6)) 如何将函数应用于的每一行out? 如何以指定的方式将除点以外的其他参数的值传递给您?
129 r  function  matrix  apply  sapply 

4
我何时应该在代码中使用pandas apply()?
我已经看到许多有关使用Pandas方法的堆栈溢出问题的答案apply。我还看到用户在他们的下面发表评论,说“ apply缓慢,应避免使用”。 我已经阅读了许多有关性能的文章,这些文章解释apply得很慢。我还在文档中看到了关于免除apply传递UDF的便捷功能的免责声明(现在似乎找不到)。因此,普遍的共识是,apply应尽可能避免。但是,这引起了以下问题: 如果apply太糟糕了,那为什么在API中呢? 我应该如何以及何时使代码apply免费? 在任何情况下apply都有良好的情况(比其他可能的解决方案更好)吗?

9
从熊猫返回多列apply()
我有一个熊猫DataFrame ,df_test。它包含一列“大小”,以字节为单位表示大小。我已经使用以下代码计算了KB,MB和GB: df_test = pd.DataFrame([ {'dir': '/Users/uname1', 'size': 994933}, {'dir': '/Users/uname2', 'size': 109338711}, ]) df_test['size_kb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0, grouping=True) + ' KB') df_test['size_mb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 2, grouping=True) + ' MB') df_test['size_gb'] = df_test['size'].astype(int).apply(lambda x: locale.format("%.1f", x / 1024.0 ** 3, …


1
将函数应用于DataFrame中的每个单元格
我有一个数据框可能看起来像这样: A B C foo bar foo bar bar foo foo bar 我想浏览每行的每个元素(或每列的每个元素)并应用以下函数来获取后续的DF: def foo_bar(x): return x.replace('foo', 'wow') A B C wow bar wow bar bar wow wow bar 是否有可以将功能应用于每个单元的简单单线? 这是一个简单的示例,因此除了应用函数外,可能还有一种更简单的方法来执行此特定示例,但是我真正要问的是如何在数据帧内的每个单元中应用函数。

4
为什么R中的循环慢?
我知道循环很慢R,我应该尝试以向量化的方式来做事情。 但为什么?为什么循环慢而apply快?apply调用了几个子功能-看起来并不快。 更新:很抱歉,这个问题是不恰当的。我把向量化与混淆了apply。我的问题应该是 “为什么矢量化更快?”
86 performance  r  apply 

3
为什么“ vapply”比“ sapply”更安全?
该文件说 vapply类似于sapply,但是具有预先指定的返回值类型,因此可以更安全地使用。 您能否解释一下为什么它通常更安全,也许提供示例? PS:我知道答案,我已经倾向于避免了sapply。我只是希望在SO上有一个不错的答案,这样我可以指出我的同事。请没有“阅读手册”的答案。
84 r  apply  r-faq 

5
Math.max.apply()如何工作?
Math.max.apply()工作如何? <!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>JS Bin</title> </head> <body> <script> var list = ["12","23","100","34","56", "9","233"]; console.log(Math.max.apply(Math,list)); </script> </body> </html> https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/max 上面的代码在列表中找到最大数。谁能告诉我下面的代码如何工作?如果我通过的话似乎可行null or Math. console.log(Math.max.apply(Math,list)); 是否所有user-defined/Native functions我们都可以使用的调用和应用方法?

4
R对特定数据框列的Apply()函数
我想在数据框上使用apply函数,但仅将函数应用于最后5列。 B<- by(wifi,(wifi$Room),FUN=function(y){apply(y, 2, A)}) 这将A应用于y的所有列 B<- by(wifi,(wifi$Room),FUN=function(y){apply(y[4:9], 2, A)}) 这仅将A应用于y的第4-9列,但是B的总收益去除了前3列...我仍然想要那些,我只是不想将A应用于它们。 wifi[,1:3]+B 也没有做我期望/想要的。
75 r  dataframe  apply 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.