如何将多个参数传递给 apply 函数

2024-03-07

我有一个名为 count 的方法,它需要 2 个参数。我需要使用 apply() 方法来调用此方法。但是,当我将两个参数传递给 apply 方法时,出现以下错误:

类型错误:counting() 恰好需要 2 个参数(给定 1 个)

我看过以下主题python pandas:将带有参数的函数应用于一系列。更新 https://stackoverflow.com/questions/21188504/python-pandas-apply-a-function-with-arguments-to-a-series-update?lq=1我不想使用 functool.partial 因为我不想导入额外的类来传递参数。

def counting(dic, strWord):
    if strWord in dic:
        return dic[strWord]
    else:
        return 0

DF['new_column'] = DF['dic_column'].apply(counting, 'word')

如果我给出一个参数,它就会起作用:

def awesome_count(dic):
    if strWord in dic:
       return dic[strWord]
    else:
       return 0

DF['new_column'] = DF['dic_column'].apply(counting)

你可以只使用一个lambda:

DF['new_column'] = DF['dic_column'].apply(lambda dic: counting(dic, 'word'))

另一方面,使用绝对没有问题partial here:

from functools import partial
count_word = partial(counting, strWord='word')
DF['new_column'] = DF['dic_column'].apply(count_word)

正如@EdChum 提到的,如果你counting方法实际上只是查找一个单词或将其默认为零,您可以使用方便的dict.get方法而不是自己写一个:

DF['new_column'] = DF['dic_column'].apply(lambda dic: dic.get('word', 0))

和一个非lambda执行上述操作的方法,通过operator module:

from operator import methodcaller
count_word = methodcaller(get, 'word', 0)
DF['new_column'] = DF['dic_column'].apply(count_word)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将多个参数传递给 apply 函数 的相关文章

随机推荐

  • 为什么我的 Button 看起来像是 1990 年的?

    我正在编写一个 Windows GUI 应用程序 并且需要一个普通的按钮 我正在使用此代码来生成按钮 hwnd CreateWindowEx NULL BUTTON Button WS VISIBLE WS CHILD BS PUSHBUT
  • MySQL:基于另一个字段添加序列列

    我正在处理一些遗留代码 数据库 并且需要向数据库添加一个字段 该字段将记录与该 外国 id 相关的序列号 示例表数据 当前 ID ACCOUNT some other stuff 1 1 2 1 3 1 4 2 5 2 6 1 我需要添加一
  • 使用 Qt 显示图像流

    当前的解决方案如下所示 paintlabel h class PaintLabel public QWidget Q OBJECT public explicit PaintLabel QWidget parent 0 public slo
  • JavaScript concat 没有按预期工作,介意详细说明吗?

    因此 我有一个包含国家 地区名称作为键的对象 值是包含一些城市的数组 我想将所有城市放在一个数组中 而不包含国家 地区 这是我的做法 但不明白为什么它不起作用 var cities United Kingdom london Spain i
  • 升级到 Xcode 9 后,cordova 应用程序将无法构建,错误 70,需要配置文件

    昨天我们从 xcode 8 3 2 升级到版本 9 现在我们的企业发行版 apache cordova ios 应用程序拒绝构建 2017 09 21 07 37 16 787 xcodebuild 70400 217569 MT IDED
  • 如何获取我的代码的结束地址

    我正在为一个课程项目从头开始编写一个实时操作系统 在将代码下载到芯片后 我想知道代码的结束地址 因为我计划将空闲内存用于堆栈空间 并且需要确保不会覆盖现有代码 我听说 GCC 提供的 end 变量是代码的结尾 但我不知道 end 的含义是什
  • 在后台运行时像 Pastebot 一样抓取 UIPasteboard

    我知道这是可能的 因为 Tapbots Pastebot 就是这么做的 我试图在我的 iPhone 应用程序在后台运行时抓取 UIPasteboard 并将其添加到 UITableView 中 就像 Pastebot 所做的那样 但我也尝试
  • 查找 Git 提交来自哪个分支

    有没有办法根据给定的情况找出提交来自哪个分支SHA 1 http en wikipedia org wiki SHA 1哈希值 如果您能告诉我如何使用 Ruby Grit 来完成此任务 那就加分了 虽然 Dav 的说法是正确的 即信息并未直
  • 安卓。以列表视图显示联系人

    我想在列表视图中显示联系人 并对所有联系人添加操作 例如单击特定联系人 它应该显示电话号码 邮件 ID 和删除特定联系人 import android app ListActivity import android content Cont
  • 为什么我无法以编程方式查看 Android 中所有正在运行的应用程序?

    我试图列出所有正在运行的应用程序 但我不知道为什么我不能这样做 当我尝试运行以下命令时 我只返回了我的应用程序 List
  • 如何使用 Django ORM 在没有数百个查询的情况下选择多对一对多?

    我的数据库具有以下架构 class Product models Model pass class Tag models Model product models ForeignKey Product attr1 models CharFi
  • 多个WebGLRenderer可以渲染同一个场景吗?

    是否可以使用两个实例WebGLRenderer 使用两个Canvas渲染相同的场景 var renderer new THREE WebGLRenderer canvas canvas1 renderer setSize 100 100 v
  • C# 锁定 WinForm 控件

    在我编写的程序中 用户可以向窗体添加控件并移动它们 并在伪设计模式下设置一些属性 我希望能够在按下按钮切换到 数据模式 时将所有这些控件锁定到一个位置 我怎样才能做到这一点 我希望能够循环遍历所有控件并使用 Lock 属性 但我注意到它没有
  • Xcode:尝试在 iOS 模拟器中运行应用程序时出现无效符号链接错误

    在我的应用程序编译阶段结束时 我看到无效的符号链接错误 这只是我每次运行时创建的一些临时目录 我尝试删除它但无济于事 该应用程序在设备上运行良好 任何帮助将非常感激 当您的应用程序包含指向应用程序包外部的符号链接时 通常会发生该错误 在为设
  • 在javascript中,使用回调执行多个异步函数的最佳实践是什么?

    有一个函数需要调用不确定数量的其他 可能异步 函数 每个函数都带有回调 我使用以下模式 虽然很确定它是正确的 但在美学上不太令人愉悦 fn responsible for figuring out and calling aysnc fun
  • Excel VBA从url获取网站标题

    Excel VBA 中的 HTML 页面标题 https stackoverflow com questions 7625316 html page title in excel vba 14509576 14509576 我知道这已经相当
  • Netty 4.0多端口,每个端口有不同的协议

    我想 netty 是我所知道的最好的 java 网络框架 在阅读并尝试一些示例后我有疑问 1 使用netty 4 0创建具有不同协议的多端口网络服务器的最佳方法是什么 每个服务器创建 EventLoopGroup bossGroup new
  • 如何覆盖引导样式

    我创建了轮播 我需要覆盖样式指示器按钮 我有风格 carousel indicators position absolute bottom 10px left 50 z index 1 width 60 padding left 0 mar
  • D2009 TStringlist ansisstring

    夏天的商业平静已经开始 所以我开始迁移到 D2009 我粗略地确定了程序的每个子系统是否应该保留 ascii 或者可以是 unicode 然后开始移植 一切都很顺利 所有组件都在 D2009 版本中 有些组件 如 VSTView 虽然稍微不
  • 如何将多个参数传递给 apply 函数

    我有一个名为 count 的方法 它需要 2 个参数 我需要使用 apply 方法来调用此方法 但是 当我将两个参数传递给 apply 方法时 出现以下错误 类型错误 counting 恰好需要 2 个参数 给定 1 个 我看过以下主题py