首页 > 编程问答 >在极坐标上使用 apply

在极坐标上使用 apply

时间:2024-07-31 03:50:44浏览次数:11  
标签:python data-science apply data-analysis python-polars

我正在尝试使用在极坐标上应用来创建一个新列。

您能帮助我吗?谢谢!

尝试执行以下操作:

df = df.with_columns(
    pl.col("AH_PROC_REALIZADO")
    .apply(get_procedure_description)
    .alias("proced_descr")
)

并收到错误:

AttributeError: 'Expr' object has no attribute 'apply'


我尝试应用的函数是:

def get_procedure_description(cod):

    proceds = {
        '41612' : 'CIRURGIA ONCOLOGICA',
        '30401' : 'RADIOTERAPIA',
        '30402' : 'QUIMIOTERAPIA',
        '30408' : 'QUIMIOTERAPIA',

        '410010057' : 'MASTECTOMIA RADICAL C/ LINFADENECTOMIA',
        '410010065' : 'MASTECTOMIA SIMPLES',

        '410010111' : 'SETORECTOMIA / QUADRANTECTOMIA',
        '410010120' : 'SETORECTOMIA / QUADRANTECTOMIA C/ ESVAZIAMENTO GANGLIONAR',

        '416020216' : 'LINFADENECTOMIA AXILAR UNILATERAL EM ONCOLOGIA ',
        '416020240' : 'LINFADENECTOMIA SELETIVA GUIADA (LINFONODO SENTINELA) EM ONCOLOGIA',

        '303130067' : 'TRATAMENTO DE PACIENTE SOB CUIDADOS PROLONGADOS POR ENFERMIDADES ONCOLOGICAS'
    }

    for proced in proceds.keys():
        if cod[: len(proced)] == proced:
            return proceds[proced]
        
    return None

错误信息 "AttributeError: 'Expr' object has no attribute 'apply'" 说明你在尝试在一个 Polars 表达式 ( Expr 对象) 上使用 apply 方法,而 Polars 表达式并没有 apply 方法。

要解决这个问题,你可以使用 apply 函数 ,而不是 apply 方法。 apply 函数可以作用于 Polars 表达式,并且可以接受一个 Python 函数作为参数。

以下是修改后的代码:

import polars as pl

def get_procedure_description(cod):
    # ... (你的函数代码) ...

df = df.with_columns(
    pl.col("AH_PROC_REALIZADO").apply(lambda x: get_procedure_description(x)).alias("proced_descr")
)

在这个代码中:

  • 我们使用 pl.col("AH_PROC_REALIZADO") 选择了名为 "AH_PROC_REALIZADO" 的列,它返回一个 Polars 表达式。
  • 我们使用 apply 函数将 get_procedure_description 函数应用于该列的每个元素。
  • 我们使用 lambda 表达式将 get_procedure_description 函数包装起来,使其能够被 apply 函数接受。
  • 最后,我们使用 alias 方法将新列命名为 "proced_descr"

另外一种方法 是使用 map 函数, 它可以更简洁地实现相同的功能:

df = df.with_columns(
    pl.col("AH_PROC_REALIZADO").map(get_procedure_description).alias("proced_descr")
)

在这种情况下,你不需要使用 lambda 表达式,因为 map 函数可以直接接受一个 Python 函数作为参数。

这两种方法都可以实现你的目标,选择哪种方法取决于你的个人喜好。

标签:python,data-science,apply,data-analysis,python-polars
From: 78813399

相关文章

  • 基于遗传(GA)、粒子群(PSO)、模拟退火(SA)、禁忌搜索(ST)、蚁群算法(ACO)、自自组织神
        ......
  • 10个append()函数在Python程序开发中的创新应用
    文末赠免费精品编程资料~~在Python编程的世界里,append()函数是列表操作中最常见的方法之一。它允许我们在列表的末尾添加一个元素,这一简单的功能却能激发无限的创造力。今天,我们将探讨append()函数在Python程序开发中的10种创新应用,从基本用法到高级技巧,逐步深入。1.构......
  • 全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规
    全网最适合入门的面向对象编程教程:28类和对象的Python实现-Python编程原则、哲学和规范大汇总摘要:本文主要介绍了在使用Python进行面向对象编程时,Python异常处理的原则-“请求谅解,而非许可”,以及软件设计和Python的编程原则,同时介绍了PEP8规范。原文链接:FreakStud......
  • python生成器
    一前言环境:python3.10win10二生成器1关于生成器先看一个例子    定义了一个函数,当我们运行该函数时,并未像普通函数那样执行函数体内的代码    从其中的英文可知,执行函数得到了一个生成器对象,这个生成器对象也叫做generatoriterator(生成器迭代器),generatorit......
  • 生成MySQL-oracle-SQL server数据字典(附Python代码)
    生成数据字典,早年写的,请注意新的版本变化。(1)MySQL元数据SQLUSEinformation_schema;#取出库和表。select  TABLE_SCHEMAAS'数据库名称',  TABLE_NAMEAS'表名',  TABLE_TYPEAS'表类型',  ROW_FORMATAS'行格式',  ENGINEAS'数据库引擎',  TABL......
  • Python - Method Resolution Order (MRO)
    TheorderinwhichPythonsearchesforattributesinbaseclassesiscalledmethodresolutionorder(MRO).Itgivesalinearizedpathforaninheritancestructure.PythoncomputesanMROforeveryclassinthehierarchy;thisMROiscomputedusingthe‘C3......
  • 计算机毕业设计选题推荐-零食批发商仓库管理系统-Java/Python项目实战
    ✨作者主页:IT研究室✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 【自动化测试必学语言】python:语言基础
    目录Python介绍语言的分类注释单行注释多行注释变量定义变量使用变量变量名的命名规范数据类型数字类型非数字类型type()函数input输入print输出格式化输出快捷键(小操作)运算符算术运算符 比较运算符Python介绍作者:吉多·范罗苏姆(Guidov......
  • Python基础知识笔记——常用函数
    一、range()函数range()函数用于生成一个整数序列。它通常用于循环结构中,例如for循环,以提供循环的迭代次数。range()函数可以有1到3个参数。#range(start,stop,step)range(2,6,2)#生成从2开始,到6结束(不包括6),步长为2的一串数字#参数指定不完全时,默认从0开始,步长......
  • [python] 启发式算法库scikit-opt使用指北
    scikit-opt是一个封装了多种启发式算法的Python代码库,可以用于解决优化问题。scikit-opt官方仓库见:scikit-opt,scikit-opt官网文档见:scikit-opt-doc。scikit-opt安装代码如下:pipinstallscikit-opt#调用scikit-opt并查看版本importskosko.__version__'0.6.6'0背景介......