使用抛出“df not defined”的函数创建pandas数据帧

2024-10-01 04:51:29 发布

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

我创建了一个函数,如下所示从一个更大的数据帧创建一个数据帧

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 is not defined”!!!我做错什么了?在

我得到的错误如下 enter image description here

如果我直接“打印”数据帧,它就会打印(下图) enter image description here

我只打印变量“variable name”以确保我有正确的dataframe名称,而且它也是正确的![enter image description here]3


Tags: 数据函数namedataframedfdatatrainmask
1条回答
网友
1楼 · 发布于 2024-10-01 04:51:29

我认为您的函数缺少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

现在可以调用函数并打印结果,如下所示:

^{pr2}$

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

相关问题 更多 >