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

熊猫:功能未按预期执行

逄嘉木
2023-03-14
df:

             score_difference   DNB selection selection_match
0                    1.040000  0.65       DNB        No Match
1                    0.894543  0.65       DNB        No Match
2                    2.120546  2.11       DNB        No Match
3                    0.672945  0.65       DNB        No Match
4                    1.578659  0.96       DNB        No Match
5                    2.746971  2.72       DNB        No Match

我正在尝试编写一个函数,如果< code > selection _ Match = = ' No Match ' then < code > DNB = score _ difference 0.02

def selection_mod_dnb(row):
    if row["selection_match"] == "No Match" and row['selection'] == "DNB":
        return 0.02 + float(row['score_difference'])
    else:
        return row['DNB']

df['DNB'] = df.apply(selection_mod_dnb, axis=1)

然而,我返回相同的df,没有任何修改

df:

             score_difference   DNB selection selection_match
0                    1.040000  0.65       DNB        No Match
1                    0.894543  0.65       DNB        No Match
2                    2.120546  2.11       DNB        No Match
3                    0.672945  0.65       DNB        No Match
4                    1.578659  0.96       DNB        No Match
5                    2.746971  2.72       DNB        No Match

虽然它应该回来

             score_difference       DNB selection selection_match
0                    1.040000  1.060000       DNB        No Match
1                    0.894543  0.914543       DNB        No Match
2                    2.120546  2.140546       DNB        No Match
3                    0.672945  0.692945       DNB        No Match
4                    1.578659  1.598659       DNB        No Match
5                    2.746971  2.766971       DNB        No Match

Lorem ipsum dolor sit amet,consecetur adipiscing elit,sed do eiusmod temor附带ut labore et dolore magna aliqua。Ut enim ad minim veniam,quis nostrud练习ullamco labis nisi ut aliquip ex ea commodo后果。

共有1个答案

马煌
2023-03-14

进行基于行的计算时,尝试使用应用:

< code > df[' DNB ']= df . apply(lambda x:x . score _ difference 0.02 if x . selection _ Match = = " No Match " else x . DNB,axis=1)

 类似资料:
  • 工具:Win7、Launch4J3.5、简单的Hello world Java控制台应用程序(绑定在JAR文件中) 大家好, 我有一个基本的JAVA控制台应用程序,它不请求任何输入,只是一个打开控制台窗口并显示Hello World文本的简单应用程序。 包装程序清单:C:\launch4j\manifest\uac.exe.manifest(也尝试保留此空白) 其余的都是默认的。

  • 我正在尝试用Java编写一个进程,该进程并发执行一系列任务,等待任务完成,然后将整个进程标记为完成。每个任务都有自己的信息,包括单个任务何时完成。我将使用ExecutorService作为流程,并将流程的本质归纳如下: 每个MyRunnable对象都有一个run方法,该方法进行webservice调用,然后将调用的结果写入数据库,包括调用完成的时间。ComplethisProcess方法只是将整个

  • 键 描述 值 automationName 自动化测试的引擎 Appium (默认)或者 Selendroid platformName 使用的手机操作系统 iOS, Android, 或者 FirefoxOS platformVersion 手机操作系统的版本 例如 7.1, 4.4 deviceName 使用的手机或模拟器类型 iPhone Simulator, iPad Simulator,

  • 我试着将一个双精度值四舍五入到小数点后两位: var x=0.68999995 var roundX=round(x*100.0)/100.0 println(roundX)//打印0.69 如果打印值是正确的...但var值不是我期望的,继续0.68999999999999995 我需要双值...不像其他StackOverflow答案那样字符串:(

  • 我试图提取顶级URL并忽略路径。我使用的代码如下: 这个脚本已经运行了一个小时了。当我运行它时,它给出了以下警告: 如果有人能给我一个更快的建议,我将不胜感激,也许是“警告”建议的方法

  • 问题内容: 我的数据有年龄,还有每月付款。 我正在尝试汇总付款总额,但不汇总年龄(平均有效)。 是否可以对不同的列使用不同的功能? 问题答案: 您可以将列名作为键,将想要的函数作为值传递给字典。