[英]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_train
, cyl
和typ
作为输入,并返回prepared
。 这意味着函数外部的df
现在是函数内部prepared
的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.