在为功能工程编写函数时,使用df.copy()是否多余



我想知道编写这种模式是否有任何好处

def feature_eng(df):
df1 = df.copy()
...
return df1

与此模式相反

def feature_eng(df):
...
return df
假设您有一个原始数据帧df_raw,并使用feature_eng创建df_feature。当调用df_feature = feature_eng(df_raw)时,第二个方法将覆盖df_raw,而第一个方法不会。因此,如果您想保持df_raw的原样而不修改它,那么第一个模式将导致正确的结果。

一个小例子:

def feature_eng1(df):
df.drop(columns=['INDEX'], inplace=True)
return df
def feature_eng2(df):
df1 = df.copy()
df1.drop(columns=['INDEX'], inplace=True)
return df1
df_feature = feature_eng1(df_raw)

在这里,df_raw将不包含包含列INDEX,而使用feature_eng2

最新更新