当前位置: 首页 > 知识库问答 >
问题:

为什么我的Pandas“apply”函数引用了多个列却不起作用呢?[关闭]

宋斌
2023-03-14

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 0')
def my_test(a):
    cum_diff = 0
    for ix in df.index():
        cum_diff = cum_diff + (a - df['a'][ix])
    return cum_diff 

共有1个答案

别兴国
2023-03-14

似乎您忘记了字符串的''

In [43]: df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1)

In [44]: df
Out[44]:
                    a    b         c     Value
          0 -1.674308  foo  0.343801  0.044698
          1 -2.163236  bar -2.046438 -0.116798
          2 -0.199115  foo -0.458050 -0.199115
          3  0.918646  bar -0.007185 -0.001006
          4  1.336830  foo  0.534292  0.268245
          5  0.976844  bar -0.773630 -0.570417

顺便说一句,在我看来,下面的方式更优雅:

In [53]: def my_test2(row):
....:     return row['a'] % row['c']
....:     

In [54]: df['Value'] = df.apply(my_test2, axis=1)
 类似资料:
  • 问题内容: 当将多个列与以下数据框一起使用时,Pandas Apply函数存在一些问题 和以下功能 当我尝试使用以下功能时: 我收到错误消息: 我不明白此消息,我正确定义了名称。 非常感谢你在此问题上的任何帮助 更新资料 谢谢你的帮助。我确实在代码中犯了一些语法错误,索引应该放在’‘。但是,使用更复杂的功能仍然会遇到相同的问题,例如: 问题答案: 似乎你忘记了你的字符串。 在我看来,顺便说一句,以

  • 问题内容: 码: 上面的代码不起作用。当我单击#clicker时,它不会发出警报,也不会隐藏。我检查了控制台,没有任何错误。我还检查了JQuery是否正在加载,实际上是否正在加载。所以不确定是什么问题。我还执行了带有警报的文档就绪功能,并且该功能正常工作,因此不确定我在做什么错。请帮忙。谢谢! 问题答案: 您应该在一个块中添加javascript代码。 即 正如jQuery文档指出的那样:“在文档

  • Stage.close()对我不起作用。 我查看了:JavaFX2.0:关闭一个舞台(窗口) 这是我的代码: 下面是调用消息框类的代码:

  • 拿我正在试验的这个非常简单的框架来说(这样我就可以更深入地学习JavaScript的函数原型。) 这工作很棒。控制台的输出是: 对象{ui:对象,操作:"单击设置openSidebar",函数:对象,运行:函数} 但是,当我尝试这样做时: 在openSidebar()中的的上下文是openSidebar(又名bind没有效果)。控制台输出: 对象{openSidebar:function} 但是,

  • 此代码: 结果例外: 致命:没有方法的签名:script1409644336796288198097。test()适用于参数类型:()值:[]可能的解决方案:使用([Ljava.lang.Object;),getAt(java.lang.String)、use(java.util.List、groovy.lang.Closure)、use(java.lang.Class、groovy.lang.C