Python 如何正确应用类方法?

Python 如何正确应用类方法?,python,pandas,Python,Pandas,我描述了一个类,它将数据从服务器加载到数据帧中,然后对其进行处理。以下是我的代码(不包括导入库): 但是当我运行代码时,它没有完成它的工作,我等了半个小时,但是代码没有执行。但是获取所有商品的方法和数据预处理方法都很有效。我在哪里犯了错误 编辑: 现在,当我使用cls.data\u final()时,出现了一个错误: 回溯(最近一次呼叫最后一次): 运行代码中的文件“C:\Program Files\Anaconda3\lib\site packages\IPython\core\interac

我描述了一个类,它将数据从服务器加载到数据帧中,然后对其进行处理。以下是我的代码(不包括导入库):

但是当我运行代码时,它没有完成它的工作,我等了半个小时,但是代码没有执行。但是获取所有商品的方法和数据预处理方法都很有效。我在哪里犯了错误

编辑:

现在,当我使用
cls.data\u final()
时,出现了一个错误:

回溯(最近一次呼叫最后一次):
运行代码中的文件“C:\Program Files\Anaconda3\lib\site packages\IPython\core\interactiveshell.py”,第3296行
exec(代码对象、self.user\u全局、self.user\n)
文件“”,第103行,在
cls.data_final()
文件“”,第68行,最终数据
data_final['desc']=data_final['desc'].apply(lambda x:self.data_morphy(x))
TypeError:“方法”对象不可下标

名称
data\u final
作为数据帧名称和函数名称共享。当尝试使用
data\u final['desc']
作为数据帧时,代码认为您正在尝试调用
data\u final()
方法。这就是为什么会出现
TypeError:“method”对象不可下标的原因

解决方案-将pandas框架的名称更改为非函数名称,例如:

def data_final(self):
    dont_name_your_variables_the_same_as_your_functions = self.data_preprocessing()
    dont_name_your_variables_the_same_as_your_functions['desc'] = dont_name_your_variables_the_same_as_your_functions['desc'].apply(lambda x: self.data_morphy(x))
    return dont_name_your_variables_the_same_as_your_functions

:)

名称
data\u final
作为数据帧的名称和函数的名称共享。当尝试使用
data\u final['desc']
作为数据帧时,代码认为您正在尝试调用
data\u final()
方法。这就是为什么会出现
TypeError:“method”对象不可下标的原因

解决方案-将pandas框架的名称更改为非函数名称,例如:

def data_final(self):
    dont_name_your_variables_the_same_as_your_functions = self.data_preprocessing()
    dont_name_your_variables_the_same_as_your_functions['desc'] = dont_name_your_variables_the_same_as_your_functions['desc'].apply(lambda x: self.data_morphy(x))
    return dont_name_your_variables_the_same_as_your_functions

:)

如何调用类方法?该过程在哪种方法中挂起?在要查看的方法中添加一些
print(“Process/Line X Done”)
行。是否需要使用第68行中的lambda函数?如果传入
data\u final['desc'],会发生什么情况。应用(self.data\u morphy)
是的,我需要使用第68行中的lambda函数。如果我传入
data\u final['desc'].apply(self.data\u morphy)
它将返回一个由
data\u预处理方法生成的数据帧。健全性检查-在第67行
打印(data\u final)
给您什么信息。假设有一个数据帧-重复检查这种情况
print(data\u final)
如果我传入
data\u final['desc'],也会返回一个数据帧。apply(self.data\u morphy)
如何调用类方法?该过程在哪种方法中挂起?在要查看的方法中添加一些
print(“Process/Line X Done”)
行。是否需要使用第68行中的lambda函数?如果传入
data\u final['desc'],会发生什么情况。应用(self.data\u morphy)
是的,我需要使用第68行中的lambda函数。如果我传入
data\u final['desc'].apply(self.data\u morphy)
它将返回一个由
data\u预处理方法生成的数据帧。健全性检查-在第67行
打印(data\u final)
给您什么信息。假设一个数据帧-重复检查这种情况
print(data\u final)
如果我传入
data\u final['desc'],也会返回一个数据帧。应用(self.data\u morphy)
def data_final(self):
    dont_name_your_variables_the_same_as_your_functions = self.data_preprocessing()
    dont_name_your_variables_the_same_as_your_functions['desc'] = dont_name_your_variables_the_same_as_your_functions['desc'].apply(lambda x: self.data_morphy(x))
    return dont_name_your_variables_the_same_as_your_functions