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
个人函数/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”
解决方案
为了使类或函数在包外可见,必须将其导入包的__init__.py
文件中,该文件在包从某处导入时运行。然后,其中定义的所有变量、导入、方法和类__init__.py
对导入它们的包都是可见的。举个例子:
示例/example.py
def visible():
pass
def not_visible():
pass
示例/初始化.py
from .ex import visible
主文件
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 子模块的更多信息
推荐阅读
- vue.js - 使用 Vue Jest ( Vue Test Utils ) 在 element-ui 的 el-select 元素上触发选项更改
- tensorflow - Keras AttributeError:“功能”对象没有属性“形状”
- reactjs - 如何限制useQuery的api调用只调用一次?
- java - Rest Controller 似乎在我的 Springboot 中不起作用
- python - /admin/main/post/add/ NOT NULL 约束处的 IntegrityError 失败:main_post.status
- python - 使用循环将列表转换为具有多个值的字典
- python - flask db init 返回“sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table”
- reactjs - 与 Grid 类型的 UI 一起使用的 React Selector
- java - Java:在时间关键型应用程序中实现高性能多线程的最佳方法是什么?
- typescript - 通用联合类型与等效的直接联合类型推断不同