繁体   English   中英

使用引发“未定义df”错误的函数创建熊猫数据框

[英]creating pandas dataframe with a function throwing 'df not defined' error

我创建了如下函数,以便从更大的数据框中创建一个数据框

def prepare_data(cyl,typ):
global variable_name
global variable_name2
mask_bel1800 = (data_train_bel1800['Cycle'] == cyl) & (data_train_bel1800['Type'] == typ)
variable_name = ("DF{c}_{s}".format(c=cyl, s=typ))
variable_name = data_train_bel1800.loc[mask_bel1800, :]


mask = (data_train['Cycle'] == cyl) & (data_train['Type'] == typ)
variable_name2 = ("DF{c}_{s}_full".format(c=cyl, s=typ))
variable_name2 = data_train.loc[mask, :]

print('dataframe ' +'"DF'+str(cyl)+'_'+str(typ) +'"'+ " upto 1800 is ready")
print('dataframe ' +'"DF'+str(cyl)+'_'+str(typ)+'_full'+'"' " is ready")

当我在该函数中放入语句print(variable_name) ,将打印数据框。 但是,在运行此函数之后,然后尝试使用df.head()访问数据df.head() ,我得到了错误“未定义df”! 我做错了什么?

我得到的错误在下面 在此处输入图片说明

如果我直接“打印”数据框,则会打印(如下图所示) 在此处输入图片说明

我通过仅打印变量“变量名称”来检查以确保我具有正确的数据框名称,这也是正确的 ![在此处输入图片描述 ] 3

我认为您的函数缺少return语句,因此它返回None 您还需要将函数的返回值分配给变量,以便以后使用。 例如:

def prepare_data(data, cyl, typ):
    mask = (data['Cyl'] == cyl) & (data['Typ'] == typ)
    prepared = data.loc[mask, :]
    print(f'Dataframe {cyl}_{typ}_full created.')
    return prepared

现在,您将能够调用该函数并打印结果,如下所示:

df = prepare_data(data_train, cyl, typ)
print(df)

该函数使用data_traincyltyp作为输入,并返回prepared 这意味着函数外部的df现在是函数内部prepared的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM