从文件导入带有熊猫的类

时间:2020-08-21 17:44:38

标签: importerror

我有两个文件: 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”

2 个答案:

答案 0 :(得分:0)

要使一个类或函数在包外部可见,必须将其导入到包的__init__.py文件中,该文件是从某处导入包时运行的。然后,在__init__.py中定义的所有变量,导入,方法和类对于导入它们的包都是可见的。以以下示例为例:

example / example.py

def visible():
    pass

def not_visible():
    pass

example / 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类对外部main.py文件可见,请为该包创建__init__.py

您可以了解有关python子调制here

的更多信息

答案 1 :(得分:0)

我需要使用

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

使用整个绝对路径