在python中从字符串创建变量

2024-06-26 00:21:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经读了很多关于这个问题的帖子,但是我还没有找到我的问题的答案。你知道吗

希望编写一个函数,允许您使用不同的名称和列创建DF。你知道吗

所以我试试这个:

def createDT(name,c1,c2,c3):
    name = pd.DataFrame(columns = [c1,c2,c3])
    print(type(name))
    return name
createDT(DT,"col1","col2","col3")

我收到:

NameError: name 'DT' is not defined

当我将“name”变量更改为String时,我收到以下消息:

<class 'pandas.core.frame.DataFrame'>
and the table below

它确认了DF的创建,但是如果我想调用DT变量

NameError: name 'DT' is not defined

我知道我可以这样做

DT2 = createDT(DT,"col1","col2","col3")

但是我必须重新命名变量,我想避免这种情况 我想把它写成一个函数。有什么办法解决吗?你知道吗


Tags: 函数namedataframedfisdtnotcol2
2条回答

不幸的是,这并不容易:

def createDT(name,c1,c2,c3):
    globals()[name] = pd.DataFrame(columns = [c1,c2,c3])
    print(type(globals()[name]))
    return globals()[name]
createDT("DT","col1","col2","col3")

但一个首选的有效解决方案是:

def createDT(name,c1,c2,c3):
    return pd.DataFrame(columns = [c1,c2,c3])
createDT("col1","col2","col3")

这可不简单

def createDT(c1,c2,c3):
    temp = pd.DataFrame(columns = [c1,c2,c3])
    print(type(temp))
    return temp

DT = createDT("col1","col2","col3")

工作?你知道吗

在Python中,您(几乎总是)不使用函数参数作为返回值。而且您不需要担心复制,因为在Python中,一切都是(有点像)指针。你知道吗

相关问题 更多 >