从文件导入 class 和 pandas

import class with pandas from file

我有两个文件: main.py

from personal_function.Convert import cls_Convert

df_key = 'PERFIL'

a = cls_Convert(df_data_2)
a.convert_cat_to_num(df_key)
df_data_2 = a.df

personal_function/Convert.py

import pandas as pd

class cls_Convert:
    def __init__(self,df):
        self.df = df

    # Mudar variavel categorica para numerica
    def convert_cat_to_num(self,df_key):
        self.df[df_key] = pd.factorize(self.df[df_key],sort=True)[0] + 1
        return self.df

    # Mudar variavel numerica para categorica
    def convert_num_to_cat(self,df_key,cat_bin,cat_label):
        self.df[df_key].replace(to_replace = cat_bin, value =cat_label, inplace=True)
        return self.df

但是我得到这个错误

ImportError: 无法从 'personal_function.Convert'

导入名称 'cls_Convert'

要使 class 或函数在包外可见,必须将其导入到包的 __init__.py 文件中,当从某处导入包时,该文件为 运行。 __init__.py 中定义的所有变量、导入、方法和 classes 然后对导入它们的包可见。举个例子:

example/example.py

def visible():
    pass

def not_visible():
    pass

示例/init.py

from .ex import visible

main.py

from example import visible
from example import not_visible # results in an error since it was not imported
                                # in the `example` package's `__init__.py` file.

要使您的 Convert class 对外部 main.py 文件可见,请为包创建 __init__.py

您可以阅读有关 python 子模化的更多信息 here

我需要使用

from os import getcwd
from sys import path
cwd = getcwd()
path.append(cwd)

比使用整个绝对路径