【问题标题】:python) how to import something by variable or by using classpython)如何通过变量或使用类导入某些东西
【发布时间】:2019-04-29 20:30:35
【问题描述】:

我想从sklearn.datasets一个一个地导入数据,并把dataframe做成如下:

# load_iris, load_wine, and etc.    
from sklearn.datasets import load_iris
iris = load_iris()

df = pd.DataFrame(iris.data, columns=iris.feature_names)
s = pd.Series(iris.target, dtype="category")
s = s.cat.rename_categories(iris.target_names)
df['target'] = s

基于上面的代码,我将实现如下功能:

def load(data_cmd, key):

    from sklearn.datasets import data_cmd
    key = data_cmd()

    df = pd.DataFrame(key.data, columns=key.feature_names)
    t = pd.Series(key.target, dtype="category")
    t = t.cat.rename_categories(key.target_names)

    return df

但我不知道如何通过变量或关键字import 数据。

编辑) 我不太擅长class。 如果有更好的方法,比如class,实现我上面的要求, 请教我如何编码:)

【问题讨论】:

  • 我想你是在问如何按类而不是变量或关键字导入。请编辑问题,以便我们为您提供帮助:)
  • @KobeThompson OP 想要动态导入,但我不得不承认“按变量或关键字”并不是最好的描述。
  • @exe 哦,明白了,谢谢。其实我不太了解类,想用 func 代替它。但是如果有更好的方法来编写我在课堂上问的内容,请帮帮我~:)

标签: python function class import


【解决方案1】:

你可以使用importlib:

import importlib

def load(data_cmd, key):

    data_method = getattr(importlib.import_module('sklearn.datasets'), data_cmd)
    key = data_method()

    df = pd.DataFrame(key.data, columns=key.feature_names)
    t = pd.Series(key.target, dtype="category")
    t = t.cat.rename_categories(key.target_names)

    return df

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多